1. Produkter
  2.   Bild
  3.   ImageMagick

ImageMagick

 
 

Open Source C-bibliotek för att skapa och konvertera bilder

Skapa, redigera, komponera, läs och konvertera bitmappsbilder med gratis C  API. Det gör det möjligt att ändra storlek, vända, spegla, rotera, förvränga, klippa och omvandla bilder i C-appar.

ImageMagick är ett bibliotek med öppen källkod som ger mjukvaruutvecklare möjlighet att inkludera bildbehandlingsmöjligheter i sina egna C-applikationer. Biblioteket är plattformsoberoende och kan köras smidigt på körningar på Linux, Windows, Mac Os X, iOS, Android OS och många andra. Det har inkluderat stöd för att läsa, visa, skapa, konvertera, modifiera och modifiera rasterbilder med C-kod.

En stor egenskap hos ImageMagick är dess förmåga att korrekt och professionellt konvertera bilder mellan olika ledande filformat. Biblioteket har inkluderat stöd för över 200 bildfilformat som JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG och många fler. Biblioteket har också tillhandahållit stöd för ritning samt grafik och animerad grafik med lätthet.

Biblioteket är mycket funktionsrikt och har inkluderat stöd för några vanliga bildbehandlingsfunktioner som bildstorleksändring och vändning, bildspegling och rotering, förvrängning, transformering av bilder, justering av bildfärger, applicering av olika specialeffektsoskärpa eller skärpa eller tröskel, bildgradienter , canny edge upptäckt rita text, linjer, polygoner, ellipser, med hjälp av matematiska uttryck och många fler. Nyligen har biblioteket även inkluderat stöd för att extrahera text från bilder med OCR.

Previous Next

Komma igång med ImageMagick

Klona de senaste källorna med följande kommando

Installera ImageMagick via GitHub.

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

Eller använd följande kommando för att installera det.

Installera ImageMagick via RPM.

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

Konvertera bild till andra format

C-biblioteket med öppen källkod ImageMagick gör det möjligt för programvaruprogrammerare att konvertera bilder till andra filformat som stöds i sina egna appar. Användare måste ange formatparametern innan de konverterar till ett annat format. Biblioteket konverterar internt bilden till andra format tidigare innan transformationerna tillämpas. Biblioteket stöder konvertering till flera populära bildformat som BMP, CMYK, GIF, JPEG, PBM, PNG, RGB, SVG, TIFF och XPM-format. En stor aspekt av biblioteket är användarvänligheten när du konverterar bilden. Det ger också möjlighet att minska storleken på bilden och använda olika effekter innan du skriver den i önskat format.

Konvertera GIF till JPEG-bild 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öd för bildgradienter med C API

C-biblioteket med öppen källkod ImageMagick gör det möjligt för mjukvaruutvecklare att skapa bildgradienter i flera färger med hjälp av C-kommandon. Du kan enkelt skapa en gradvis blandning av en eller flera färger med hjälp av horisontella, vertikala, cirkulära eller elliptiska former. Biblioteket har förbättrat gradienterna genom att använda flera –definieringar som att specificera riktningen för den linjära gradienten, Identifiera koordinater för centrumpunkten för den radiella gradienten, Begränsa gradienten till ett större eller mindre område än bildens dimensioner, och så på. Dessutom, för icke-linjära gråskalegradienter, lägg till -colorspace RGB -colorspace grå innan du sparar utdata.

Skapa en enkel gråskalegradient 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();
}

Använd specialeffekter på bilder via C

C-biblioteket med öppen källkod ImageMagick har tillhandahållit funktionalitet för att applicera olika typer av effekter på bilder. Den har tillhandahållit flera viktiga funktioner som suddighet, skärpa, tröskel, skapa skuggor, fjäderformer eller tona en bild med ett par rader C-kod. Vissa speciella oskärpa effekter som radiooskärpa och rörelseoskärpa stöds också.

Använd sida vid sida med teckensnittseffekt 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öd för stora bilder

C-biblioteket ImageMagick har gett stöd för att arbeta med mycket stora bilder. Det gör det möjligt för utvecklare att öppna, läsa, bearbeta eller skriva bilder upp till Mega-, Giga- eller Tera-pixelstorlekar i sina egna bildbehandlingsprogram. Biblioteket gör det möjligt att ändra storlek på en bild till en kvarts miljon pixlar i kvadrat. När du arbetar med stora bilder måste du se till att det finns stora minnesresurser. Om den tillfälliga standarddiskpartitionen är liten, vägled ImageMagick att använda en annan partition med tillräckligt mycket ledigt utrymme.

 Svenska