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 gray, преди да запазите резултата.

Създайте Simple Grayscale Gradient чрез 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 код. Поддържат се и някои специални ефекти на размазване, като радиоразмазване и размазване при движение.

Приложете Tiled Font Effect чрез 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 да използва друг дял с достатъчно свободно пространство.

 Български