![](https://products-qa.fileformat.com/bg/image/c/imagemagick/header-image.png)
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.
Първи стъпки с 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 да използва друг дял с достатъчно свободно пространство.