ImageMagick
Biblioteca C open source pentru a crea și a converti imagini
Creați, editați, compuneți, citiți și convertiți imagini Bitmap folosind C API gratuit. Permite redimensionarea, răsturnarea, oglindirea, rotirea, distorsionarea, tăierea și transformarea imaginilor în aplicațiile C.
ImageMagick este o bibliotecă open source care oferă dezvoltatorilor de software puterea de a include capabilități de procesare a imaginilor în propriile aplicații C. Biblioteca este multiplatformă și poate rula fără probleme pe Linux, Windows, Mac Os X, iOS, Android OS și multe altele. Acesta a inclus suport pentru citirea, afișarea, crearea, conversia, modificarea și modificarea imaginilor raster folosind codul C.
O caracteristică excelentă a ImageMagick este capacitatea sa de a converti cu acuratețe și profesionalism imaginile între diferite formate de fișiere principale. Biblioteca a inclus suport pentru peste 200 de formate de fișiere imagine, cum ar fi JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG și multe altele. Biblioteca a oferit, de asemenea, suport pentru desen, precum și pentru grafică și grafică animată cu ușurință.
Biblioteca este foarte bogată în caracteristici și a inclus suport pentru unele caracteristici comune de procesare a imaginii, cum ar fi redimensionarea și răsturnarea imaginii, oglindirea și rotirea imaginii, distorsionarea, transformarea imaginilor, ajustarea culorilor imaginii, aplicarea diferitelor efecte speciale, estompare sau clarificare sau prag, gradienți de imagine. , detectarea marginilor științifice desenează text, linii, poligoane, elipse, folosind expresii matematice și multe altele. Recent, biblioteca a inclus și suport pentru extragerea textului din imagini folosind OCR.
Noțiuni introductive cu ImageMagick
Clonează cele mai recente surse folosind următoarea comandă
Instalați ImageMagick prin GitHub.
git clone https://github.com/ImageMagick/ImageMagick.git
Sau utilizați următoarea comandă pentru a o instala.
Instalați ImageMagick prin RPM.
$ rpm -Uvh ImageMagick-libs-7.0.10-60.x86_64.rpm
Convertiți imaginea în alte formate
Biblioteca C open source ImageMagick le permite programatorilor de software să convertească imagini în alte formate de fișiere acceptate în propriile aplicații. Utilizatorii trebuie să furnizeze parametrul de format înainte de a converti într-un alt format. Biblioteca convertește intern imaginea în alte formate mai devreme, înainte de a aplica transformările. Biblioteca acceptă conversia în mai multe formate de imagine populare, cum ar fi formatele BMP, CMYK, GIF, JPEG, PBM, PNG, RGB, SVG, TIFF și XPM. Un aspect important al bibliotecii este ușurința de utilizare în timpul conversiei imaginii. De asemenea, oferă posibilitatea de a reduce dimensiunea imaginii și de a aplica diferite efecte înainte de a o scrie în formatul dorit.
Convertiți GIF în imagine JPEG prin 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;
}
Suport pentru degrade de imagine folosind C API
Biblioteca C open source ImageMagick le permite dezvoltatorilor de software să creeze gradienți de imagine de mai multe culori folosind comenzile C. Puteți crea cu ușurință un amestec gradual de una sau mai multe culori folosind forme orizontale, verticale, circulare sau eliptice. Biblioteca a îmbunătățit gradienții prin utilizarea mai multor definiții, cum ar fi specificarea direcției gradientului liniar, identificarea coordonatelor punctului central pentru gradientul radial, restrângerea gradientului la o regiune mai mare sau mai mică decât dimensiunile imaginii și așadar pe. Mai mult, pentru gradienți neliniari în tonuri de gri, adăugați -colorspace RGB -colorspace grey înainte de a salva rezultatul.
Creați un gradient simplu în tonuri de gri prin API-ul C
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();
}
Aplicați efecte speciale imaginilor prin C
Biblioteca C open source ImageMagick a oferit funcționalități pentru aplicarea diferitelor tipuri de efecte imaginilor. Acesta a oferit mai multe funcții importante, cum ar fi estomparea, clarificarea, pragul, crearea de umbre, apariția formelor sau colorarea unei imagini folosind câteva linii de cod C. Sunt acceptate și unele efecte speciale de estompare, cum ar fi estomparea radio și estomparea mișcării.
Aplicați efectul de font Tiled prin API-ul C
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");
Suport pentru imagini mari
Biblioteca C ImageMagick a oferit suport pentru lucrul cu imagini foarte mari. Acesta permite dezvoltatorilor să deschidă, să citească, să proceseze sau să scrie imagini de până la dimensiuni de mega, giga sau tera pixeli în propriile aplicații de procesare a imaginilor. Biblioteca permite redimensionarea unei imagini la un sfert de milion de pixeli pătrați. În timp ce lucrați cu imagini mari, trebuie să vă asigurați că există resurse mari de memorie. Dacă partiția temporară implicită a discului este mică, atunci ghidați ImageMagick să folosească o altă partiție cu o cantitate suficientă de spațiu liber.