1. Produktai
  2.   Vaizdas
  3.   ImageMagick

ImageMagick

 
 

Atvirojo kodo C biblioteka, skirta kurti ir konvertuoti vaizdus

Kurkite, redaguokite, kurkite, skaitykite ir konvertuokite „Bitmap“ vaizdus naudodami nemokamą C API. Tai leidžia pakeisti, apversti, atspindėti, pasukti, iškraipyti, kirpti ir transformuoti vaizdus C programose.

ImageMagick yra atvirojo kodo biblioteka, suteikianti programinės įrangos kūrėjams galią įtraukti vaizdo apdorojimo galimybes į savo C programas. Biblioteka yra kelių platformų ir gali sklandžiai veikti Linux, Windows, Mac Os X, iOS, Android OS ir daugelyje kitų. Ji apima rastrinių vaizdų skaitymo, rodymo, kūrimo, konvertavimo, modifikavimo ir modifikavimo palaikymą naudojant C kodą.

Viena puiki „ImageMagick“ ypatybė yra galimybė tiksliai ir profesionaliai konvertuoti vaizdus tarp skirtingų pirmaujančių failų formatų. Biblioteka palaiko daugiau nei 200 vaizdo failų formatų, tokių kaip JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG ir daugelis kitų. Biblioteka taip pat palaiko piešimą, grafiką ir animuotą grafiką.

Biblioteka yra labai daug funkcijų ir apima kai kurių įprastų vaizdo apdorojimo funkcijų palaikymą, pvz., vaizdo dydžio keitimą ir apvertimą, vaizdo atspindėjimą ir pasukimą, iškraipymą, vaizdų transformavimą, vaizdo spalvų reguliavimą, įvairių specialiųjų efektų suliejimą, paryškinimą ar slenkstį, vaizdo gradientus. , gudrus briaunų aptikimas piešia tekstą, linijas, daugiakampius, elipses, naudojant matematinę išraišką ir daug daugiau. Neseniai biblioteka taip pat įtraukė palaikymą teksto ištraukimui iš vaizdų naudojant OCR.

Previous Next

Darbo su ImageMagick pradžia

Klonuokite naujausius šaltinius naudodami šią komandą

Įdiekite „ImageMagick“ per „GitHub“.

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

Arba naudokite šią komandą, kad ją įdiegtumėte.

Įdiekite „ImageMagick“ per RPM.

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

Konvertuoti vaizdą į kitus formatus

Atvirojo kodo C biblioteka ImageMagick leidžia programuotojams konvertuoti vaizdus į kitus palaikomus failų formatus savo programose. Prieš konvertuodami į kitą formatą, vartotojai turi pateikti formato parametrą. Biblioteka viduje konvertuoja vaizdą į kitus formatus anksčiau, prieš taikydama transformacijas. Biblioteka palaiko konvertavimą į kelis populiarius vaizdo formatus, tokius kaip BMP, CMYK, GIF, JPEG, PBM, PNG, RGB, SVG, TIFF ir XPM formatai. Vienas puikus bibliotekos aspektas yra paprastas naudojimas konvertuojant vaizdą. Tai taip pat suteikia galimybę sumažinti vaizdo dydį ir pritaikyti skirtingus efektus prieš įrašant jį norimu formatu.

Konvertuokite GIF į JPEG vaizdą naudodami „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; 
}

Vaizdo gradientų palaikymas naudojant C API

Atvirojo kodo C biblioteka ImageMagick leidžia programinės įrangos kūrėjams sukurti kelių spalvų vaizdo gradientus naudojant C komandas. Galite lengvai sukurti laipsnišką vienos ar kelių spalvų derinį naudodami horizontalias, vertikalias, apskritas arba elipses formas. Biblioteka pagerino gradientus naudodama kelis – apibrėžimus, tokius kaip linijinio gradiento krypties nurodymas, radialinio gradiento centro taško koordinačių nustatymas, gradiento ribojimas iki didesnio ar mažesnio ploto nei vaizdo matmenys ir pan. įjungta. Be to, jei norite naudoti nelinijinius pilkos spalvos gradientus, prieš išsaugodami išvestį pridėkite -colorspace RGB -colorspace gray.

Sukurkite paprastą pilkos spalvos gradientą naudodami 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();
}

Taikykite specialiuosius efektus vaizdams naudodami C

Atvirojo kodo C biblioteka ImageMagick suteikė įvairių tipų efektų pritaikymo vaizdams funkciją. Jis suteikė keletą svarbių funkcijų, tokių kaip suliejimas, paryškinimas, slenkstis, šešėlių kūrimas, formų aptraukimas arba vaizdo atspalvis naudojant kelias C kodo eilutes. Taip pat palaikomi kai kurie specialūs suliejimo efektai, tokie kaip radijo suliejimas ir judesio suliejimas.

Taikykite Tiled Font Effect per 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");

Didelių vaizdų palaikymas

C biblioteka ImageMagick suteikė palaikymą darbui su labai dideliais vaizdais. Tai leidžia kūrėjams atidaryti, skaityti, apdoroti arba rašyti vaizdus iki mega, giga arba tera pikselių dydžio savo vaizdo apdorojimo programose. Biblioteka leidžia pakeisti vaizdo dydį iki ketvirtadalio milijono pikselių kvadratų. Dirbdami su dideliais vaizdais turite įsitikinti, ar yra didelių atminties išteklių. Jei numatytasis laikinas disko skaidinys yra mažas, vadovaukitės ImageMagick, kad galėtumėte naudoti kitą skaidinį, kuriame būtų pakankamai laisvos vietos.

 Lietuvių