1. Produkter
  2.   Billede
  3.   ImageMagick

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.

Previous Next

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.

 Dansk