ImageMagick
Atvērtā pirmkoda C bibliotēka attēlu izveidei un konvertēšanai
Izveidojiet, rediģējiet, veidojiet, lasiet un konvertējiet bitkartes attēlus, izmantojot bezmaksas C API. Tas ļauj mainīt izmērus, apvērst, spoguļot, pagriezt, izkropļot, nogriezt un pārveidot attēlus C lietotnēs.
ImageMagick ir atvērtā pirmkoda bibliotēka, kas programmatūras izstrādātājiem sniedz iespēju iekļaut attēlu apstrādes iespējas viņu pašu C lietojumprogrammās. Bibliotēka ir vairāku platformu, un tā var nevainojami darboties operētājsistēmās Linux, Windows, Mac Os X, iOS, Android OS un daudzās citās. Tajā ir iekļauts atbalsts rastra attēlu lasīšanai, parādīšanai, izveidei, konvertēšanai, modificēšanai un modificēšanai, izmantojot C kodu.
Viena no lieliskām ImageMagick iezīmēm ir tā spēja precīzi un profesionāli konvertēt attēlus starp dažādiem vadošajiem failu formātiem. Bibliotēkā ir iekļauts atbalsts vairāk nekā 200 attēlu failu formātiem, piemēram, JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG un daudziem citiem. Bibliotēka ir arī nodrošinājusi atbalstu zīmēšanai, kā arī grafikai un animētai grafikai.
Bibliotēka ir ļoti daudzfunkcionāla, un tajā ir iekļauts atbalsts dažām kopīgām attēlu apstrādes funkcijām, piemēram, attēla izmēru maiņai un apvēršanai, attēla spoguļošanai un pagriešanai, izkropļošanai, attēlu pārveidošanai, attēla krāsu pielāgošanai, dažādu specefektu izplūšanai vai asināšanai vai slieksnim, attēla gradientiem. , viltīga malu noteikšana zīmē tekstu, līnijas, daudzstūrus, elipses, izmantojot matemātisko izteiksmi un daudz ko citu. Nesen bibliotēkā ir iekļauts arī atbalsts teksta izvilkšanai no attēliem, izmantojot OCR.
Darba sākšana ar ImageMagick
Klonējiet jaunākos avotus, izmantojot šo komandu
Instalējiet ImageMagick, izmantojot GitHub.
git clone https://github.com/ImageMagick/ImageMagick.git
Vai arī izmantojiet šo komandu, lai to instalētu.
Instalējiet ImageMagick, izmantojot RPM.
$ rpm -Uvh ImageMagick-libs-7.0.10-60.x86_64.rpm
Pārveidojiet attēlu citos formātos
Atvērtā pirmkoda C bibliotēka ImageMagick ļauj programmatūras programmētājiem pārvērst attēlus citos atbalstītos failu formātos savās lietotnēs. Pirms konvertēšanas citā formātā lietotājiem ir jānorāda formāta parametrs. Bibliotēka iekšēji pārvērš attēlu citos formātos agrāk, pirms tiek lietotas transformācijas. Bibliotēka atbalsta konvertēšanu uz vairākiem populāriem attēlu formātiem, piemēram, BMP, CMYK, GIF, JPEG, PBM, PNG, RGB, SVG, TIFF un XPM formātiem. Viens lielisks bibliotēkas aspekts ir ērta lietošana attēla pārveidošanas laikā. Tas arī nodrošina iespēju samazināt attēla izmēru un pielietot dažādus efektus pirms tā rakstīšanas vēlamajā formātā.
Pārveidojiet GIF uz JPEG attēlu, izmantojot 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;
}
Attēlu gradientu atbalsts, izmantojot C API
Atvērtā koda C bibliotēka ImageMagick ļauj programmatūras izstrādātājiem izveidot vairāku krāsu attēlu gradientus, izmantojot C komandas. Varat viegli izveidot pakāpenisku vienas vai vairāku krāsu sajaukumu, izmantojot horizontālas, vertikālas, apļveida vai eliptiskas formas. Bibliotēka ir uzlabojusi gradientus, izmantojot vairākus definējumus, piemēram, lineārā gradienta virziena norādīšanu, radiālā gradienta centra punkta koordinātu noteikšanu, gradienta ierobežošanu līdz lielākam vai mazākam apgabalam nekā attēla izmēri utt. ieslēgts. Turklāt nelineāriem pelēktoņu gradientiem, lūdzu, pirms izvades saglabāšanas pievienojiet -colorspace RGB -colorspace gray.
Izveidojiet vienkāršu pelēktoņu gradientu, izmantojot 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();
}
Izmantojiet īpašos efektus attēliem, izmantojot C
Atvērtā pirmkoda C bibliotēka ImageMagick ir nodrošinājusi funkcionalitāti dažāda veida efektu pielietošanai attēliem. Tas ir nodrošinājis vairākas svarīgas funkcijas, piemēram, izplūšanu, asināšanu, slieksni, ēnu radīšanu, formu iekrāsošanu vai attēla tonēšanu, izmantojot pāris C koda rindiņas. Tiek atbalstīti arī daži īpaši izplūšanas efekti, piemēram, radio aizmiglojums un kustības izplūšana.
Lietojiet flīzes fonta efektu, izmantojot 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");
Lielu attēlu atbalsts
C bibliotēka ImageMagick ir nodrošinājusi atbalstu darbam ar ļoti lieliem attēliem. Tas ļauj izstrādātājiem savās attēlu apstrādes lietojumprogrammās atvērt, lasīt, apstrādāt vai rakstīt attēlus līdz pat mega, giga vai tera pikseļu izmēram. Bibliotēka ļauj mainīt attēla izmēru līdz ceturtdaļmiljonam pikseļu kvadrātā. Strādājot ar lieliem attēliem, jums ir jāpārliecinās par lielu atmiņas resursu pieejamību. Ja noklusējuma pagaidu diska nodalījums ir mazs, vadiet ImageMagick izmantot citu nodalījumu ar pietiekami daudz brīvas vietas.