ImageMagick
Nyílt forráskódú C Library képek létrehozásához és konvertálásához
Hozzon létre, szerkesszen, írjon, olvasson és konvertáljon Bitmap képeket az ingyenes C API segítségével. Lehetővé teszi a képek átméretezését, átfordítását, tükrözését, elforgatását, torzítását, nyírását és átalakítását a C alkalmazásokon belül.
Az ImageMagick egy nyílt forráskódú könyvtár, amely lehetővé teszi a szoftverfejlesztők számára, hogy képfeldolgozó képességeket építsenek be saját C-alkalmazásaikba. A könyvtár többplatformos, és zökkenőmentesen fut Linux, Windows, Mac Os X, iOS, Android OS és sok más operációs rendszeren. Támogatja a raszteres képek olvasását, megjelenítését, létrehozását, konvertálását, módosítását és módosítását C kóddal.
Az ImageMagick egyik nagyszerű tulajdonsága, hogy képes pontosan és professzionálisan konvertálni a képeket a különböző vezető fájlformátumok között. A könyvtár több mint 200 képfájl-formátum támogatását tartalmazza, például JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG és még sok más. A könyvtár támogatást nyújtott a rajzoláshoz, valamint a grafikákhoz és az animált grafikákhoz is.
A könyvtár nagyon gazdag funkciókban, és támogatja néhány általános képfeldolgozási funkciót, mint például a kép átméretezése és tükrözése, képtükrözés és -forgatás, torzítás, képek átalakítása, képszínek beállítása, különféle speciális effektusok alkalmazása, elmosódás vagy élesítés vagy küszöbérték, képátmenetek , a finom élérzékelés szöveget, vonalakat, sokszögeket, ellipsziseket rajzol, matematikai kifejezések és még sok más segítségével. A közelmúltban a könyvtár támogatja a képekből szöveg OCR segítségével történő kinyerését is.
Az ImageMagick első lépései
Klónozza a legújabb forrásokat a következő paranccsal
Telepítse az ImageMagick-et a GitHubon keresztül.
git clone https://github.com/ImageMagick/ImageMagick.git
Vagy használja a következő parancsot a telepítéshez.
Telepítse az ImageMagicket RPM-en keresztül.
$ rpm -Uvh ImageMagick-libs-7.0.10-60.x86_64.rpm
Kép konvertálása más formátumba
A nyílt forráskódú C könyvtár ImageMagick lehetővé teszi a szoftverprogramozók számára, hogy a képeket más támogatott fájlformátumokká alakítsák át saját alkalmazásaikban. A felhasználóknak meg kell adniuk a formátum paramétert, mielőtt más formátumba konvertálnának. A könyvtár belsőleg átalakítja a képet más formátumokba korábban, az átalakítások alkalmazása előtt. A könyvtár számos népszerű képformátumra támogatja a konvertálást, mint például a BMP, CMYK, GIF, JPEG, PBM, PNG, RGB, SVG, TIFF és XPM formátumok. A könyvtár egyik nagyszerű aspektusa a könnyű használat a kép konvertálása közben. Lehetővé teszi a kép méretének csökkentését és különböző effektusok alkalmazását, mielőtt a kívánt formátumba írná.
GIF konvertálása JPEG képpé az ImageMagick segítségével
#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;
}
Képszínátmenetek támogatása C API használatával
A nyílt forráskódú ImageMagick C-könyvtár lehetővé teszi a szoftverfejlesztők számára, hogy több színből álló képátmeneteket hozzanak létre C-parancsok segítségével. Könnyedén létrehozhat egy vagy több szín fokozatos keverését vízszintes, függőleges, kör- vagy ellipszis alakú formák használatával. A könyvtár számos olyan definíció használatával javította a színátmeneteket, mint például a lineáris gradiens irányának meghatározása, a sugárirányú gradiens középpontjának koordinátáinak azonosítása, a gradiens korlátozása a kép méreteinél nagyobb vagy kisebb területre, stb. tovább. Ezenkívül a nem lineáris szürkeárnyalatos színátmenetekhez a kimenet mentése előtt adja hozzá a -colorspace RGB -colorspace gray elemet.
Hozzon létre egy egyszerű szürkeárnyalatos színátmenetet a C API-n keresztül
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();
}
Alkalmazzon speciális effektusokat a képekre a C segítségével
Az ImageMagick nyílt forráskódú C-könyvtár különféle típusú effektusok alkalmazását teszi lehetővé a képeken. Számos fontos funkcióval rendelkezik, mint például az elmosódás, élesítés, küszöbérték, árnyékok létrehozása, alakzatok kifestése vagy a kép színezése néhány soros C kód használatával. Vannak olyan speciális elmosódási effektusok is, mint a rádiós elmosódás és a mozgásos elmosódás.
Alkalmazza a csempézett betűtípus effektust a C API-n keresztül
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");
Nagy képek támogatása
Az ImageMagick C könyvtár támogatást nyújtott a nagyon nagy képekkel való munkavégzéshez. Lehetővé teszi a fejlesztők számára, hogy mega-, giga- vagy terapixel méretű képeket nyissanak meg, olvassanak, dolgozzanak fel vagy írjanak saját képfeldolgozó alkalmazásaikon belül. A könyvtár lehetővé teszi a kép átméretezését negyedmillió pixel négyzetre. Ha nagyméretű képekkel dolgozik, gondoskodnia kell a nagy memóriaerőforrások rendelkezésre állásáról. Ha az alapértelmezett ideiglenes lemezpartíció kicsi, akkor utasítsa az ImageMagick-et egy másik, elegendő szabad hellyel rendelkező partíció használatára.