ImageMagick
Libreria C Open Source per creare e convertire immagini
Crea, modifica, componi, leggi e converti immagini bitmap utilizzando C API gratuita. Consente di ridimensionare, capovolgere, specchiare, ruotare, distorcere, tagliare e trasformare le immagini all'interno delle app C.
ImageMagick è una libreria open source che offre agli sviluppatori di software la possibilità di includere funzionalità di elaborazione delle immagini all'interno delle proprie applicazioni C. La libreria è multipiattaforma e può essere eseguita senza problemi su Linux, Windows, Mac Os X, iOS, sistema operativo Android e molti altri. Ha incluso il supporto per la lettura, la visualizzazione, la creazione, la conversione, la modifica e la modifica di immagini raster utilizzando il codice C.
Una grande caratteristica di ImageMagick è la sua capacità di convertire in modo accurato e professionale le immagini tra i diversi formati di file principali. La libreria include il supporto per oltre 200 formati di file immagine come JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG e molti altri. La libreria ha anche fornito supporto per il disegno, nonché per la grafica e la grafica animata con facilità.
La libreria è molto ricca di funzionalità e include il supporto per alcune comuni funzioni di elaborazione delle immagini come il ridimensionamento e il capovolgimento dell'immagine, il mirroring e la rotazione dell'immagine, la distorsione, la trasformazione delle immagini, la regolazione dei colori dell'immagine, l'applicazione di vari effetti speciali sfocatura o nitidezza o soglia, gradienti dell'immagine , il rilevamento dei bordi astuti disegna testo, linee, poligoni, ellissi, utilizzando espressioni matematiche e molti altri. Recentemente la libreria ha incluso anche il supporto per l'estrazione di testo dalle immagini tramite OCR.
Guida introduttiva a ImageMagick
Clona le ultime fonti usando il comando seguente
Installa ImageMagick tramite GitHub.
git clone https://github.com/ImageMagick/ImageMagick.git
Oppure usa il seguente comando per installarlo.
Installa ImageMagic tramite RPM.
$ rpm -Uvh ImageMagick-libs-7.0.10-60.x86_64.rpm
Converti immagine in altri formati
La libreria C open source ImageMagick consente ai programmatori di software di convertire le immagini in altri formati di file supportati all'interno delle proprie app. Gli utenti devono fornire il parametro format prima di eseguire la conversione in un altro formato. La libreria converte internamente l'immagine in altri formati prima di applicare le trasformazioni. La libreria supporta la conversione in diversi formati di immagine popolari come i formati BMP, CMYK, GIF, JPEG, PBM, PNG, RGB, SVG, TIFF e XPM. Un grande aspetto della libreria è la facilità d'uso durante la conversione dell'immagine. Fornisce inoltre la possibilità di ridurre le dimensioni dell'immagine e applicare diversi effetti prima di scriverla nel formato desiderato.
Convertire GIF in JPEG Immagine tramite 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;
}
Gradienti dell'immagine Supporto utilizzando C API
La libreria C open source ImageMagick consente agli sviluppatori di software di creare sfumature di immagini di più colori utilizzando i comandi C. Puoi facilmente creare una miscela graduale di uno o più colori utilizzando forme orizzontali, verticali, circolari o ellittiche. La libreria ha migliorato i gradienti attraverso l'uso di diverse definizioni, come specificare la direzione del gradiente lineare, identificare le coordinate del punto centrale per il gradiente radiale, limitare il gradiente a una regione più grande o più piccola rispetto alle dimensioni dell'immagine e così via Su. Inoltre, per i gradienti in scala di grigi non lineari, aggiungere -colorspace RGB -colorspace gray prima di salvare l'output.
Creare una scala di grigi semplice tramite 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();
}
Applicare effetti speciali alle immagini tramite C
La libreria C open source ImageMagick ha fornito funzionalità per applicare diversi tipi di effetti alle immagini. Ha fornito diverse funzioni importanti come sfocatura, nitidezza, soglia, creazione di ombre, forme sfumate o colorazione di un'immagine utilizzando un paio di righe di codice C. Sono supportati anche alcuni effetti di sfocatura speciali come sfocatura radio e sfocatura movimento.
Applicare Filed Font Effect via 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");
Supporto per immagini di grandi dimensioni
La libreria C ImageMagick ha fornito supporto per lavorare con immagini molto grandi. Consente agli sviluppatori di aprire, leggere, elaborare o scrivere immagini fino a dimensioni Mega, Giga o Tera pixel all'interno delle proprie applicazioni di elaborazione delle immagini. La libreria consente di ridimensionare un'immagine a un quarto di milione di pixel quadrati. Quando si lavora con immagini di grandi dimensioni, è necessario assicurarsi della disponibilità di grandi risorse di memoria. Se la partizione del disco temporaneo predefinita è piccola, guida ImageMagick a utilizzare un'altra partizione con una quantità sufficiente di spazio libero.