![](https://products-qa.fileformat.com/nl/image/c/imagemagick/header-image.png)
ImageMagick
Open Source C-bibliotheek om afbeeldingen te maken en te converteren
Maak, bewerk, stel, lees en converteer bitmapafbeeldingen met de gratis C -API. Hiermee kunt u afbeeldingen in C-apps vergroten of verkleinen, spiegelen, spiegelen, roteren, vervormen, knippen en transformeren.
De ImageMagick is een open source bibliotheek die softwareontwikkelaars de mogelijkheid geeft om beeldverwerkingsmogelijkheden op te nemen in hun eigen C-applicaties. De bibliotheek is platformonafhankelijk en kan soepel draaien op Linux, Windows, Mac Os X, iOS, Android OS en vele anderen. Het biedt ondersteuning voor het lezen, weergeven, maken, converteren, wijzigen en wijzigen van rasterafbeeldingen met behulp van C-code.
Een geweldige functie van ImageMagick is de mogelijkheid om afbeeldingen nauwkeurig en professioneel te converteren tussen verschillende toonaangevende bestandsindelingen. De bibliotheek biedt ondersteuning voor meer dan 200 beeldbestandsformaten zoals JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG en nog veel meer. De bibliotheek heeft ook met gemak ondersteuning geboden voor zowel tekenen als afbeeldingen en geanimeerde afbeeldingen.
De bibliotheek is zeer rijk aan functies en biedt ondersteuning voor een aantal veelvoorkomende functies voor beeldverwerking, zoals het formaat wijzigen en spiegelen van afbeeldingen, spiegelen en roteren van afbeeldingen, vervormen, transformeren van afbeeldingen, aanpassing van beeldkleuren, het toepassen van verschillende speciale effecten, vervaging of verscherping of drempel, beeldgradiënten , slimme randdetectie teken tekst, lijnen, polygonen, ellipsen, gebruik wiskundige uitdrukkingen en nog veel meer. Onlangs heeft de bibliotheek ook ondersteuning geboden voor het extraheren van tekst uit afbeeldingen met behulp van OCR.
Aan de slag met ImageMagick
Kloon de nieuwste bronnen met behulp van de volgende opdracht:
Installeer ImageMagick via GitHub.
git clone https://github.com/ImageMagick/ImageMagick.git
Of gebruik de volgende opdracht om het te installeren.
Installeer ImageMagick via RPM.
$ rpm -Uvh ImageMagick-libs-7.0.10-60.x86_64.rpm
Afbeelding converteren naar andere indelingen
Met de open source C-bibliotheek ImageMagick kunnen softwareprogrammeurs afbeeldingen converteren naar andere ondersteunde bestandsindelingen in hun eigen apps. Gebruikers moeten de formaatparameter opgeven voordat ze naar een ander formaat kunnen converteren. De bibliotheek converteert de afbeelding intern eerder naar andere formaten, voordat de transformaties worden toegepast. De bibliotheek ondersteunt conversie naar verschillende populaire afbeeldingsformaten zoals BMP, CMYK, GIF, JPEG, PBM, PNG, RGB, SVG, TIFF en XPM-formaten. Een geweldig aspect van de bibliotheek is het gebruiksgemak tijdens het converteren van de afbeelding. Het biedt ook de mogelijkheid om de grootte van de afbeelding te verkleinen en verschillende effecten toe te passen voordat deze in het gewenste formaat wordt geschreven.
Beker GIF tot JPEG Vertaling:
#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;
}
Ondersteuning voor beeldgradiënten met behulp van C API
Met de open source C-bibliotheek ImageMagick kunnen softwareontwikkelaars beeldverlopen van meerdere kleuren maken met behulp van C-opdrachten. U kunt eenvoudig een geleidelijke mengeling van een of meerdere kleuren maken met behulp van horizontale, verticale, cirkelvormige of elliptische vormen. De bibliotheek heeft de gradiënten verbeterd door het gebruik van verschillende -definities, zoals het specificeren van de richting van de lineaire gradiënt, het identificeren van de coördinaten van het middelpunt voor de radiale gradiënt, het beperken van de gradiënt tot een groter of kleiner gebied dan de afbeeldingsdimensies, enzovoort. Aan. Bovendien, voor niet-lineaire grijswaardenverlopen, voegt u -colorspace RGB -colorspace grey toe voordat u de uitvoer opslaat.
Creëer een Simple Grayscale Gradit via CAPI
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();
}
Pas speciale effecten toe op afbeeldingen via C
De open source C-bibliotheek ImageMagick biedt functionaliteit voor het toepassen van verschillende soorten effecten op afbeeldingen. Het heeft verschillende belangrijke functies geboden, zoals vervaging, verscherping, drempelwaarde, schaduwen creëren, doezelen of een afbeelding kleuren met een paar regels C-code. Er worden ook enkele speciale vervagingseffecten ondersteund, zoals radiovervaging en bewegingsonscherpte.
Vertaling:
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");
Ondersteuning voor grote afbeeldingen
De C-bibliotheek ImageMagick heeft ondersteuning geboden voor het werken met zeer grote afbeeldingen. Hiermee kunnen ontwikkelaars afbeeldingen openen, lezen, verwerken of schrijven tot Mega-, Giga- of Tera-pixelgroottes in hun eigen beeldverwerkingstoepassingen. Met de bibliotheek kan het formaat van een afbeelding worden gewijzigd tot een kwart miljoen pixels in het vierkant. Als u met grote afbeeldingen werkt, moet u ervoor zorgen dat er voldoende geheugen beschikbaar is. Als de standaard tijdelijke schijfpartitie klein is, begeleidt u ImageMagick dan om een andere partitie met voldoende vrije ruimte te gebruiken.