ImageMagick
Avoimen lähdekoodin C-kirjasto kuvien luomiseen ja muuntamiseen
Luo, muokkaa, kirjoita, lue ja muunna bittikarttakuvia ilmaisella C API:lla. Sen avulla voit muuttaa, kääntää, peilata, kiertää, vääristää, leikata ja muuttaa kuvia C-sovellusten sisällä.
ImageMagick on avoimen lähdekoodin kirjasto, joka antaa ohjelmistokehittäjille mahdollisuuden sisällyttää kuvankäsittelyominaisuuksia omiin C-sovelluksiinsa. Kirjasto on monialustainen ja toimii sujuvasti Linuxissa, Windowsissa, Mac Os X:ssä, iOS:ssä, Android OS:ssä ja monissa muissa käyttöjärjestelmissä. Se on sisältänyt tuen rasterikuvien lukemiseen, näyttämiseen, luomiseen, muuntamiseen, muokkaamiseen ja muokkaamiseen C-koodin avulla.
Yksi ImageMagickin hieno ominaisuus on sen kyky muuntaa kuvat tarkasti ja ammattimaisesti eri johtavien tiedostomuotojen välillä. Kirjasto on tukenut yli 200 kuvatiedostomuotoa, kuten JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG ja monia muita. Kirjasto on myös tarjonnut tukea piirtämiseen sekä grafiikkaan ja animoituun grafiikkaan helposti.
Kirjasto on erittäin monipuolinen ja sisältää tuen joihinkin yleisiin kuvankäsittelyominaisuuksiin, kuten kuvan koon muuttamiseen ja kääntämiseen, kuvan peilaukseen ja kääntämiseen, vääristymiseen, kuvien muuntamiseen, kuvan värien säätöön, erilaisten erikoistehosteiden sumennuksen tai terävöinnin tai kynnyksen käyttämiseen, kuvan liukuväreihin. , näppärä reunantunnistus piirtää tekstiä, viivoja, polygoneja, ellipsejä käyttämällä matemaattista lauseketta ja paljon muuta. Viime aikoina kirjastossa on myös tuki tekstin poimimiseen kuvista OCR:n avulla.
ImageMagickin käytön aloittaminen
Kloonaa uusimmat lähteet käyttämällä seuraavaa komentoa
Asenna ImageMagick GitHubin kautta.
git clone https://github.com/ImageMagick/ImageMagick.git
Tai asenna se käyttämällä seuraavaa komentoa.
Asenna ImageMagick RPM:n kautta.
$ rpm -Uvh ImageMagick-libs-7.0.10-60.x86_64.rpm
Muunna kuva muihin muotoihin
Avoimen lähdekoodin C-kirjasto ImageMagick antaa ohjelmoijille mahdollisuuden muuntaa kuvat muihin tuettuihin tiedostomuotoihin omissa sovelluksissaan. Käyttäjien on annettava muotoparametri ennen muuntamista toiseen muotoon. Kirjasto muuntaa kuvan sisäisesti muihin muotoihin aikaisemmin, ennen muunnosten käyttöönottoa. Kirjasto tukee muuntamista useisiin suosittuihin kuvamuotoihin, kuten BMP-, CMYK-, GIF-, JPEG-, PBM-, PNG-, RGB-, SVG-, TIFF- ja XPM-muotoihin. Yksi kirjaston hieno puoli on helppokäyttöisyys kuvan muuntamisen aikana. Se tarjoaa myös mahdollisuuden pienentää kuvan kokoa ja käyttää erilaisia tehosteita ennen sen kirjoittamista haluttuun muotoon.
Muunna GIF JPEG-kuvaksi ImageMagickin avulla
#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;
}
Kuvagradienttituki C API:lla
Avoimen lähdekoodin C-kirjasto ImageMagick antaa ohjelmistokehittäjille mahdollisuuden luoda kuvagradientteja useista väreistä käyttämällä C-komentoja. Voit helposti luoda asteittain yhden tai useamman värin sekoituksen käyttämällä vaaka-, pysty-, pyöreitä tai elliptisiä muotoja. Kirjasto on parantanut gradientteja käyttämällä useita määritelmiä, kuten lineaarisen gradientin suunnan määrittäminen, säteittäisen gradientin keskipisteen koordinaattien tunnistaminen, gradientin rajoittaminen kuvan mitat suuremmalle tai pienemmälle alueelle ja niin edelleen. päällä. Lisäksi epälineaarisia harmaasävygradientteja varten lisää -väriavaruus RGB -väriavaruuksien harmaa ennen tulosteen tallentamista.
Luo yksinkertainen harmaasävygradientti C-sovellusliittymän kautta
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();
}
Käytä erikoistehosteita kuviin C:n kautta
Avoimen lähdekoodin C-kirjasto ImageMagick on tarjonnut toimintoja erityyppisten tehosteiden soveltamiseen kuviin. Se on tarjonnut useita tärkeitä toimintoja, kuten sumentamisen, terävöinnin, kynnyksen, varjojen luomisen, muotojen höyläyksen tai kuvan sävyttämisen muutamalla C-koodirivillä. Joitakin erityisiä sumennustehosteita, kuten radio-epäterävyyttä ja liikesumennusta, tuetaan myös.
Käytä Tiled Font Effect C-sovellusliittymän kautta
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");
Suurten kuvien tuki
C-kirjasto ImageMagick on tarjonnut tukea erittäin suurten kuvien käsittelyyn. Sen avulla kehittäjät voivat avata, lukea, käsitellä tai kirjoittaa kuvia jopa mega-, giga- tai terapikselin kokoisiin kuviin omissa kuvankäsittelysovelluksissaan. Kirjasto mahdollistaa kuvan koon muuttamisen neljännesmiljoonaan pikseliin. Kun työskentelet suurten kuvien kanssa, sinun on varmistettava suurten muistiresurssien saatavuus. Jos oletusarvoinen väliaikainen levyosio on pieni, ohjaa ImageMagickia käyttämään toista osiota, jossa on riittävästi vapaata tilaa.