1. Producten
  2.   Afbeelding
  3.   ImageMagick

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.

Previous Next

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.

 Dutch