1. Produkty
  2.   Obraz
  3.   ImageMagick

ImageMagick

 
 

Biblioteka Open Source C do tworzenia i konwertowania obrazów

Twórz, edytuj, komponuj, czytaj i konwertuj obrazy bitmapowe za pomocą bezpłatnego interfejsu API C  . Pozwala zmieniać rozmiar, odwracać, odbijać, obracać, zniekształcać, ścinać i przekształcać obrazy w aplikacjach C.

ImageMagick to biblioteka typu open source, która daje programistom możliwość włączenia możliwości przetwarzania obrazu we własnych aplikacjach C. Biblioteka jest wieloplatformowa i może płynnie działać na systemach Linux, Windows, Mac OS X, iOS, Android OS i wielu innych. Zawiera obsługę czytania, wyświetlania, tworzenia, konwertowania, modyfikowania i modyfikowania obrazów rastrowych za pomocą kodu C.

Jedną wielką cechą ImageMagick jest możliwość dokładnej i profesjonalnej konwersji obrazów między różnymi wiodącymi formatami plików. Biblioteka zawiera obsługę ponad 200 formatów plików graficznych, takich jak JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG i wiele innych. Biblioteka z łatwością obsługuje również rysowanie, grafikę i animowaną grafikę.

Biblioteka jest bardzo bogata w funkcje i zawiera obsługę niektórych typowych funkcji przetwarzania obrazu, takich jak zmiana rozmiaru i odwracanie obrazu, odbicie lustrzane i obracanie obrazu, zniekształcanie, przekształcanie obrazów, dostosowywanie kolorów obrazu, stosowanie różnych efektów specjalnych rozmycie lub wyostrzanie lub próg, gradienty obrazu , sprytne wykrywanie krawędzi rysuj tekst, linie, wielokąty, elipsy, używając wyrażeń matematycznych i wielu innych. Od niedawna biblioteka zawiera również obsługę wyodrębniania tekstu z obrazów za pomocą OCR.

Previous Next

Pierwsze kroki z ImageMagick

Sklonuj najnowsze źródła za pomocą następującego polecenia

Zainstaluj ImageMagick przez GitHub.

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

Lub użyj następującego polecenia, aby go zainstalować.

Zainstaluj ImageMagick przez RPM.

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

Konwertuj obraz na inne formaty

Biblioteka Open Source C ImageMagick umożliwia programistom konwertowanie obrazów na inne obsługiwane formaty plików w ich własnych aplikacjach. Użytkownicy muszą podać parametr formatu przed konwersją na inny format. Biblioteka wewnętrznie konwertuje obraz na inne formaty wcześniej, przed zastosowaniem przekształceń. Biblioteka obsługuje konwersję do kilku popularnych formatów graficznych, takich jak BMP, CMYK, GIF, JPEG, PBM, PNG, RGB, SVG, TIFF i XPM. Jednym z wielkich aspektów biblioteki jest łatwość użycia podczas konwersji obrazu. Zapewnia również możliwość zmniejszenia rozmiaru obrazu i zastosowania różnych efektów przed zapisaniem go w żądanym formacie.

Konwertuj GIF na obraz JPEG za pomocą 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; 
}

Obsługa gradientów obrazu przy użyciu C API

Biblioteka Open Source C ImageMagick umożliwia programistom tworzenie gradientów obrazu o wielu kolorach za pomocą poleceń języka C. Możesz łatwo stworzyć stopniową mieszankę jednego lub wielu kolorów, używając kształtów poziomych, pionowych, okrągłych lub eliptycznych. Biblioteka ulepszyła gradienty poprzez użycie kilku definicji, takich jak określenie kierunku gradientu liniowego, identyfikacja współrzędnych punktu środkowego gradientu promieniowego, ograniczenie gradientu do obszaru większego lub mniejszego niż wymiary obrazu, itd. na. Co więcej, w przypadku nieliniowych gradientów w skali szarości, przed zapisaniem danych wyjściowych należy dodać -colorspace RGB -colorspace grey.

Utwórz prosty gradient w skali szarości za pomocą interfejsu API języka C


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

Zastosuj efekty specjalne do obrazów za pomocą C

Biblioteka Open Source C ImageMagick zapewnia funkcjonalność do stosowania różnych typów efektów do obrazów. Posiada kilka ważnych funkcji, takich jak rozmycie, wyostrzenie, próg, tworzenie cieni, wtapianie kształtów lub zabarwienie obrazu za pomocą kilku linijek kodu C. Obsługiwane są również specjalne efekty rozmycia, takie jak rozmycie radiowe i rozmycie ruchu.

Zastosuj efekt kafelkowej czcionki za pomocą interfejsu API języka C

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");

Obsługa dużych obrazów

Biblioteka C ImageMagick zapewnia obsługę pracy z bardzo dużymi obrazami. Umożliwia programistom otwieranie, odczytywanie, przetwarzanie lub zapisywanie obrazów o rozmiarach do mega-, giga- lub tera-pikseli we własnych aplikacjach do przetwarzania obrazu. Biblioteka umożliwia zmianę rozmiaru obrazu do kwadratu o ćwierć miliona pikseli. Podczas pracy z dużymi obrazami należy zadbać o dostępność dużych zasobów pamięci. Jeśli domyślna tymczasowa partycja dysku jest mała, pomóż ImageMagickowi użyć innej partycji z wystarczającą ilością wolnego miejsca.

 Polski