![](https://products-qa.fileformat.com/da/image/c/imagemagick/header-image.png)
ImageMagick
Open Source C-bibliotek til at oprette og konvertere billeder
Opret, rediger, komponer, læs og konverter bitmapbilleder ved hjælp af gratis C API. Det gør det muligt at ændre størrelse, spejlvende, spejle, rotere, forvrænge, klippe og transformere billeder inde i C-apps.
ImageMagick er et open source-bibliotek, der giver softwareudviklere mulighed for at inkludere billedbehandlingsmuligheder i deres egne C-applikationer. Biblioteket er på tværs af platforme og kan uden problemer køre på kørsler på Linux, Windows, Mac Os X, iOS, Android OS og mange andre. Det har inkluderet understøttelse af læsning, visning, oprettelse, konvertering, ændring og ændring af rasterbilleder ved hjælp af C-kode.
En stor egenskab ved ImageMagick er dens evne til nøjagtigt og professionelt at konvertere billeder mellem forskellige førende filformater. Biblioteket har inkluderet understøttelse af over 200 billedfilformater såsom JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG og mange flere. Biblioteket har også ydet support til tegning samt grafik og animeret grafik med lethed.
Biblioteket er meget funktionsrigt og har inkluderet understøttelse af nogle almindelige billedbehandlingsfunktioner, såsom billedstørrelse og -vending, billedspejling og rotation, forvrængning, transformation af billeder, billedfarvejustering, anvendelse af forskellige specialeffekter, sløring eller skarphed eller tærskel, billedgradienter , canny edge-detektion tegner tekst, linjer, polygoner, ellipser ved hjælp af matematiske udtryk og mange flere. For nylig har biblioteket også inkluderet støtte til at udtrække tekst fra billeder ved hjælp af OCR.
Kom godt i gang med ImageMagick
Klon de seneste kilder med følgende kommando
Installer ImageMagick via GitHub.
git clone https://github.com/ImageMagick/ImageMagick.git
Eller brug følgende kommando til at installere det.
Installer ImageMagick via RPM.
$ rpm -Uvh ImageMagick-libs-7.0.10-60.x86_64.rpm
Konverter billede til andre formater
Open source C-biblioteket ImageMagick gør det muligt for softwareprogrammører at konvertere billeder til andre understøttede filformater i deres egne apps. Brugere skal angive formatparameteren, før de konverterer til et andet format. Biblioteket konverterer internt billedet til andre formater tidligere, før transformationerne anvendes. Biblioteket understøtter konvertering til flere populære billedformater såsom BMP, CMYK, GIF, JPEG, PBM, PNG, RGB, SVG, TIFF og XPM-formater. Et godt aspekt ved biblioteket er brugervenligheden, mens billedet konverteres. Det giver også mulighed for at reducere størrelsen af billedet og anvende forskellige effekter, før du skriver det i det ønskede format.
Konverter GIF til JPEG-billede via 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;
}
Understøttelse af billedgradienter ved hjælp af C API
Open source C-biblioteket ImageMagick gør det muligt for softwareudviklere at skabe billedgradienter i flere farver ved hjælp af C-kommandoer. Du kan nemt skabe en gradvis blanding af en eller flere farver ved hjælp af vandrette, lodrette, cirkulære eller elliptiske former. Biblioteket har forbedret gradienterne gennem brugen af flere -definitioner, såsom at angive retningen af den lineære gradient, identificere koordinater for midtpunktet for den radiale gradient, begrænse gradienten til et større eller mindre område end billeddimensionerne, og så på. For ikke-lineære gråtonegradienter skal du desuden tilføje -colorspace RGB -colorspace grå, før du gemmer outputtet.
Opret en simpel gråtonegradient via 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();
}
Anvend specielle effekter på billeder via C
Open source C-biblioteket ImageMagick har givet funktionalitet til at anvende forskellige typer effekter på billeder. Det har givet flere vigtige funktioner såsom sløring, skarphed, tærskelværdi, skabelse af skygger, fjerformer eller toning af et billede ved hjælp af et par linjer med C-kode. Der understøttes også nogle specielle sløringseffekter som radiosløring og bevægelsessløring.
Anvend flisebelagt skrifttypeeffekt 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");
Understøttelse af store billeder
C-biblioteket ImageMagick har givet support til at arbejde med meget store billeder. Det gør det muligt for udviklere at åbne, læse, behandle eller skrive billeder op til Mega-, Giga- eller Tera-pixelstørrelser i deres egne billedbehandlingsapplikationer. Biblioteket gør det muligt at ændre størrelsen på et billede til en kvart million pixels kvadrat. Mens du arbejder med store billeder, skal du sikre dig, at der er store hukommelsesressourcer til rådighed. Hvis den midlertidige standarddiskpartition er lille, så guide ImageMagick til at bruge en anden partition med en tilstrækkelig mængde ledig plads.