Библиотека быстрой обработки изображений с открытым исходным кодом для C++

Создавайте, управляйте, рисуйте, делите, копируйте и конвертируйте популярные форматы изображений; Применяйте фильтры, разделяйте два изображения, создавайте сетку изображения с помощью бесплатной библиотеки C++.

libvips — это библиотека расширенной обработки изображений с открытым исходным кодом, которая использует очень мало памяти и выполняет очень быстрые операции. Библиотека может легко обрабатывать большие изображения и поддерживает приличный диапазон форматов файлов изображений, таких как JPEG, TIFF, PNG, WebP, HEIC, FITS, Matlab, OpenEXR, PDF, SVG, HDR, PPM / PGM / PFM, CSV, GIF. , Анализ, NIfTI, DeepZoom и OpenSlide. Он может легко загружать изображения через ImageMagick или GraphicsMagick, что позволяет ему работать с такими форматами, как DICOM.

Цифровой циферблат применяется разумно, и некоторые методы использования, такие как разработка кода в беге, помогают быстро обрабатывать изображения. По сравнению с другими библиотеками обработки изображений, было отмечено, что libris нужно мало AM и работать быстрее, особенно на машинах с несколькими Caps. Это в основном из-за интеллектуальной архитектуры, которую он использует, которая автоматически делит рабочий процесс изображения.

Библиотека обеспечивает поддержку огромного диапазона числовых типов, от простых 8-битных t до сложных 128-битных. Большинство библиотек обработки изображений используют резьбовые операции, но библиотека, с другой стороны, помещает резьбу в изображение В системе и назначьте копию всего графического конвейера для работы над ним. Этот горизонтальный резьбовый стиль позволяет лучше использовать кэши процессора и уменьшает запирание.

Библиотека libris - это библиотека обработки изображений, которая предлагает лучшую производительность, чем многие другие библиотеки. Библиотека предоставила поддержку для нескольких важных функций обработки изображений, таких как изображения рисования, разделение двух изображений, рисование круга на изображении, копирование изображения, рисование изображения на другом изображении, рисование линии на изображении, литье изображение, кэш изображение, добавить два изображения, сделать русский образ, прочитать точку от изображения, сетка изображения, сохранить изображение на файл JPEG и многое другое.

Previous Next

Начало работы с libvips

Клонируйте последние исходники с помощью следующей команды.

Установка libris через команду git

 git clone git://github.com/libvips/libvips.git 

Для сборки из git нужно больше пакетов, вам понадобятся как минимум gtk-doc и gobject-introspection.

Установите пакеты libvips с помощью команды git

 ./autogen.sh
make
sudo make install 

Более быстрый рендеринг изображений через C++ API

Библиотека libvips обеспечивает функциональность для более быстрого создания образов и управления ими на всех ведущих платформах. Некоторые из ведущих библиотек обработки изображений, такие как библиотеки ImageMagick и GD, очень мощные и предоставляют расширенные функции для работы с изображениями, но требуют большого объема памяти для обработки изображений. С другой стороны, libvips может выполнять практически те же действия, что и ImageMagick, но намного быстрее и требует сравнительно небольшого объема памяти.

Сохранить изображение в другие поддерживаемые форматы

Библиотека libvips с открытым исходным кодом предоставляет набор операций для загрузки и сохранения изображений в различных форматах. Библиотека включает встроенную поддержку сохранения изображений в популярных форматах, таких как TIFF, JPEG, PNG, Analyze, PPM, OpenEXR, CSV, Matlab, Radiance, RAW, FITS, WebP, SVG, PDF, GIF и VIPS. VipsForeign можно использовать для загрузки и сохранения изображений в различных форматах.

Читать и писать изображения в память через C++ API

int 
main( int argc, char **argv )
{
	gchar *buf;
	gsize len;
	int i;
	if( VIPS_INIT( argv[0] ) )
		vips_error_exit( NULL );
        if( argc != 2 ) 
		vips_error_exit( "usage: %s FILENAME", argv[0] ); 
	if( !g_file_get_contents( argv[1], &buf, &len, NULL ) )
		vips_error_exit( NULL );
	for( i = 0; i < 10; i++ ) {
		VipsImage *image;
		void *new_buf;
		size_t new_len;
		printf( "loop %d ...\n", i );
		if( !(image = vips_image_new_from_buffer( buf, len, "", 
			"access", VIPS_ACCESS_SEQUENTIAL,
			NULL )) ) 
			vips_error_exit( NULL );
		if( vips_image_write_to_buffer( image, 
			".jpg", &new_buf, &new_len, 
			"Q", 95,
			NULL ) ) 
			vips_error_exit( NULL );
		g_object_unref( image );
		g_free( new_buf );
	}
	g_free( buf );
	vips_shutdown();
	return( 0 );
}

Более быстрое изменение размера изображения

Библиотека libvips с открытым исходным кодом дает разработчикам программного обеспечения возможность изменять размер изображений на лету в своих собственных приложениях. Во-первых, вам нужно загрузить изображение из репозитория изображений, указав имя изображения и полный адрес. После этого вы можете изменить его размер до указанной ширины и высоты в соответствии с вашими потребностями. После этого вы можете сохранить его в выбранном вами месте с новым размером.

Читать и писать изображения в память через C++ API

int
vips_resize( VipsImage *in, VipsImage **out, 
	double scale, ... )
{
	va_list ap;
	int result;
	va_start( ap, scale );
	result = vips_call_split( "resize", ap, in, out, scale );
	va_end( ap );
	return( result );
}

Фильтрация изображений через C++ API

Фильтр изображений - это ценная функция, которая используется в различных приложениях обработки изображений и компьютерного зрения по всему миру. Библиотека libris обеспечивает полную поддержку фильтрации изображений через C++ команд. Такие функции, как сглаживание, происходящее и улучшение края, являются некоторыми примерами операций обработки изображений, реализованных с фильтрацией. Библиотека также включает в себя NG-фильтры, такие как разница слева, в среднем слева и вверх, адаптивный, автоматически выберите лучший предиктор соседа и нет фильтрации. Он также включает в себя импортные фильтры, которые могут загружаться с libMagick и с OpenSlide.

 Русский