1. Produkter
  2.   Bilde
  3.   ImageMagick

ImageMagick

 
 

Open Source C-bibliotek for å lage og konvertere bilder

Opprett, rediger, komponer, les og konverter bitmapbilder ved hjelp av gratis C  API. Den lar deg endre størrelse, snu, speile, rotere, forvrenge, skjære og transformere bilder i C-apper.

ImageMagick er et åpen kildekode-bibliotek som gir programvareutviklere muligheten til å inkludere bildebehandlingsfunksjoner i sine egne C-applikasjoner. Biblioteket er på tvers av plattformer og kan kjøres jevnt på kjører på Linux, Windows, Mac Os X, iOS, Android OS og mange andre. Den har inkludert støtte for lesing, visning, opprettelse, konvertering, modifisering og modifisering av rasterbilder ved hjelp av C-kode.

En flott funksjon ved ImageMagick er dens evne til nøyaktig og profesjonelt konvertere bilder mellom forskjellige ledende filformater. Biblioteket har inkludert støtte for over 200 bildefilformater som JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG og mange flere. Biblioteket har også gitt støtte for tegning så vel som grafikk og animert grafikk med letthet.

Biblioteket er svært funksjonsrikt og har inkludert støtte for noen vanlige bildebehandlingsfunksjoner som for eksempel endring av størrelse og vending, bildespeiling og rotering, forvrengning, transformering av bilder, justering av bildefarger, bruk av ulike spesialeffekter uskarphet eller skarphet eller terskel, bildegradienter , canny edge-deteksjon tegner tekst, linjer, polygoner, ellipser, ved hjelp av matematiske uttrykk og mange flere. Nylig har biblioteket også inkludert støtte for å trekke ut tekst fra bilder ved hjelp av OCR.

Previous Next

Komme i gang med ImageMagick

Klon de nyeste kildene med følgende kommando

Installer ImageMagick via GitHub.

 git clone https://github.com/ImageMagick/ImageMagick.git 

Eller bruk følgende kommando for å installere den.

Installer ImageMagick via RPM.

$ rpm -Uvh ImageMagick-libs-7.0.10-60.x86_64.rpm 

Konverter bilde til andre formater

Open source C-biblioteket ImageMagick gjør det mulig for programvareprogrammerere å konvertere bilder til andre støttede filformater i sine egne apper. Brukere må oppgi formatparameteren før de konverterer til et annet format. Biblioteket konverterer bildet internt til andre formater tidligere, før transformasjonene tas i bruk. Biblioteket støtter konvertering til flere populære bildeformater som BMP, CMYK, GIF, JPEG, PBM, PNG, RGB, SVG, TIFF og XPM-formater. Et flott aspekt ved biblioteket er brukervennligheten mens du konverterer bildet. Det gir også muligheten til å redusere størrelsen på bildet og bruke forskjellige effekter før du skriver det i ønsket format.

Konverter GIF til JPEG-bilde 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; 
}

Støtte for bildegradienter ved bruk av C API

C-biblioteket med åpen kildekode ImageMagick gjør det mulig for programvareutviklere å lage bildegradienter med flere farger ved hjelp av C-kommandoer. Du kan enkelt lage en gradvis blanding av en eller flere farger ved å bruke horisontale, vertikale, sirkulære eller elliptiske former. Biblioteket har forbedret gradientene ved bruk av flere –definisjoner, som å spesifisere retningen til den lineære gradienten, identifisere koordinatene til midtpunktet for den radielle gradienten, begrense gradienten til et større eller mindre område enn bildedimensjonene, og så på. Dessuten, for ikke-lineære gråtonegradienter, vennligst legg til -colorspace RGB -colorspace grå før du lagrer utdataene.

Lag en enkel 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();
}

Bruk spesialeffekter på bilder via C

Åpen kildekode C-biblioteket ImageMagick har gitt funksjonalitet for å bruke forskjellige typer effekter på bilder. Den har gitt flere viktige funksjoner som uskarphet, skarphet, terskel, skape skygger, fjærformer eller fargetoning av et bilde ved hjelp av et par linjer med C-kode. Det støttes også noen spesielle uskarphet-effekter som radiouskarphet og bevegelsesuskarphet.

Bruk flislagt skrifteffekt 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");

Støtte for store bilder

C-biblioteket ImageMagick har gitt støtte for arbeid med veldig store bilder. Den gjør det mulig for utviklere å åpne, lese, behandle eller skrive bilder opp til Mega-, Giga- eller Tera-pikselstørrelser i sine egne bildebehandlingsapplikasjoner. Biblioteket gjør det mulig å endre størrelsen på et bilde til en kvart million kvadratiske piksler. Når du arbeider med store bilder, må du sørge for at det er store minneressurser tilgjengelig. Hvis standard midlertidig diskpartisjon er liten, må du veilede ImageMagick til å bruke en annen partisjon med tilstrekkelig mengde ledig plass.

 Norsk