ImageMagick

 
 

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

Создавайте, редактируйте, компонуйте, читайте и конвертируйте растровые изображения с помощью бесплатного C API. Он позволяет изменять размер, переворачивать, зеркально отображать, вращать, искажать, срезать и преобразовывать изображения внутри приложений C.

ImageMagick — это библиотека с открытым исходным кодом, которая дает разработчикам программного обеспечения возможность включать возможности обработки изображений в свои собственные приложения C. Библиотека является кроссплатформенной и может без проблем работать на Linux, Windows, Mac Os X, iOS, Android OS и многих других. Он включает поддержку чтения, отображения, создания, преобразования, изменения и изменения растровых изображений с использованием кода C.

Одной из замечательных особенностей ImageMagick является его способность точно и профессионально конвертировать изображения между различными ведущими форматами файлов. Библиотека включает поддержку более 200 форматов файлов изображений, таких как JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG и многих других. Библиотека также с легкостью поддерживает рисование, а также графику и анимированную графику.

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

Previous Next

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

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

Установите ImageMagick через GitHub.

 git clone https://github.com/ImageMagick/ImageMagick.git 

Или используйте следующую команду для его установки.

Установите ImageMagick через RPM.

$ rpm -Uvh ImageMagick-libs-7.0.10-60.x86_64.rpm 

Преобразование изображения в другие форматы

Библиотека C с открытым исходным кодом ImageMagick позволяет программистам конвертировать изображения в другие поддерживаемые форматы файлов в своих собственных приложениях. Пользователям необходимо указать параметр формата перед преобразованием в другой формат. Библиотека внутренне конвертирует изображение в другие форматы раньше, до применения преобразований. Библиотека поддерживает преобразование в несколько популярных форматов изображений, таких как форматы BMP, CMYK, GIF, JPEG, PBM, PNG, RGB, SVG, TIFF и XPM. Одним из замечательных аспектов библиотеки является простота использования при преобразовании изображения. Он также предоставляет возможность уменьшать размер изображения и применять различные эффекты перед его записью в нужном формате.

Преобразование изображения GIF в JPEG с помощью ImageMagick


#include  
using namespace std; 
using namespace Magick; 
int main(int argc,char **argv) 
{ 
  InitializeMagick(*argv);
  // Read GIF file from disk 
  Image image( "giraffe.gif" );
  // Write to BLOB in JPEG format 
  Blob blob; 
  image.magick( "JPEG" ) // Set JPEG output format 
  image.write( &blob );
  [ Use BLOB data (in JPEG format) here ]
  return 0; 
}

Поддержка градиентов изображений с использованием C API

Библиотека C с открытым исходным кодом ImageMagick позволяет разработчикам программного обеспечения создавать градиенты изображения нескольких цветов с помощью команд C. Вы можете легко создать постепенное смешение одного или нескольких цветов, используя горизонтальные, вертикальные, круглые или эллиптические формы. Библиотека улучшила градиенты за счет использования нескольких определений, таких как указание направления линейного градиента, определение координат центральной точки радиального градиента, ограничение градиента большей или меньшей областью, чем размеры изображения, и так далее. на. Кроме того, для нелинейных градиентов оттенков серого добавьте -colorspace RGB -colorspace grey перед сохранением вывода.

Создание простого серого градиента через C API


void test_wand(LPTSTR lpCmdLine)
{
	MagickWand *m_wand = NULL;
	PixelWand *p_wand = NULL;
	PixelIterator *iterator = NULL;
	PixelWand **pixels = NULL;
	int x,y,gray;
	char hex[128];
	MagickWandGenesis();
	p_wand = NewPixelWand();
	PixelSetColor(p_wand,"white");
	m_wand = NewMagickWand();
	// Create a 100x100 image with a default of white
	MagickNewImage(m_wand,100,100,p_wand);
	// Get a new pixel iterator 
	iterator=NewPixelIterator(m_wand);
	for(y=0;y<100;y++) {
		// Get the next row of the image as an array of PixelWands
		pixels=PixelGetNextIteratorRow(iterator,&x);
		// Set the row of wands to a simple gray scale gradient
		for(x=0;x<100;x++) {
			gray = x*255/100;
			sprintf(hex,"#%02x%02x%02x",gray,gray,gray);
			PixelSetColor(pixels[x],hex);
		}
		// Sync writes the pixels back to the m_wand
		PixelSyncIterator(iterator);
	}
	MagickWriteImage(m_wand,"bits_demo.gif");
	// Clean up
	iterator=DestroyPixelIterator(iterator);
	DestroyMagickWand(m_wand);
	MagickWandTerminus();
}

Применение специальных эффектов к изображениям с помощью C

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

Применение эффекта мозаичного шрифта через C API

magick_wand = NewMagickWand();
	d_wand = NewDrawingWand();
	p_wand = NewPixelWand();
	set_tile_pattern(d_wand,"#check","pattern:checkerboard");
	PixelSetColor(p_wand,"lightblue");
	// Create a new transparent image
	MagickNewImage(magick_wand,320,100,p_wand);
	// Set up a 72 point font 
	DrawSetFont (d_wand, "Verdana-Bold-Italic" ) ;
	DrawSetFontSize(d_wand,72);
	// Now draw the text
	DrawAnnotation(d_wand,28,68,"Magick");
	// Draw the image on to the magick_wand
	MagickDrawImage(magick_wand,d_wand);
	// Trim the image
	MagickTrimImage(magick_wand,0);
	// Add a transparent border
	PixelSetColor(p_wand,"lightblue");
	MagickBorderImage(magick_wand,p_wand,5,5);
	// and write it
	MagickWriteImage(magick_wand,"text_pattern.png");

Поддержка больших изображений

Библиотека C ImageMagick обеспечивает поддержку работы с очень большими изображениями. Это позволяет разработчикам открывать, читать, обрабатывать или записывать изображения размером до мега-, гига- или терапикселей в своих собственных приложениях для обработки изображений. Библиотека позволяет изменять размер изображения до квадрата в четверть миллиона пикселей. При работе с большими изображениями необходимо убедиться в наличии больших ресурсов памяти. Если временный раздел диска по умолчанию имеет небольшой размер, направьте ImageMagick на использование другого раздела с достаточным количеством свободного места.

 Русский