1. Produkte
  2.   Bild
  3.   ImageMagick

ImageMagick

 
 

Open-Source-C-Bibliothek zum Erstellen und Konvertieren von Bildern

Erstellen, bearbeiten, erstellen, lesen und konvertieren Sie Bitmap-Bilder mit der kostenlosen C-API. Es ermöglicht das Ändern der Größe, Spiegeln, Drehen, Verzerren, Scheren und Transformieren von Bildern in C-Apps.

ImageMagick ist eine Open-Source-Bibliothek, die Softwareentwicklern die Möglichkeit gibt, Bildverarbeitungsfunktionen in ihre eigenen C-Anwendungen einzubinden. Die Bibliothek ist plattformübergreifend und kann problemlos unter Linux, Windows, Mac OS X, iOS, Android OS und vielen anderen ausgeführt werden. Es hat Unterstützung für das Lesen, Anzeigen, Erstellen, Konvertieren, Modifizieren und Modifizieren von Rasterbildern mit C-Code enthalten.

Ein großartiges Feature von ImageMagick ist seine Fähigkeit, Bilder genau und professionell zwischen verschiedenen führenden Dateiformaten zu konvertieren. Die Bibliothek unterstützt über 200 Bilddateiformate wie JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG und viele mehr. Die Bibliothek hat auch Unterstützung für das Zeichnen sowie für Grafiken und animierte Grafiken mit Leichtigkeit bereitgestellt.

Die Bibliothek ist sehr funktionsreich und bietet Unterstützung für einige gängige Bildverarbeitungsfunktionen wie Bildgrößenänderung und -spiegelung, Bildspiegelung und -rotation, Verzerren, Transformieren von Bildern, Bildfarbenanpassung, Anwenden verschiedener Spezialeffekte, Unschärfe oder Schärfe oder Schwellenwert, Bildverläufe , schlaue Kantenerkennung Zeichnen Sie Text, Linien, Polygone, Ellipsen, verwenden Sie mathematische Ausdrücke und vieles mehr. Vor kurzem hat die Bibliothek auch Unterstützung für das Extrahieren von Text aus Bildern mit OCR hinzugefügt.

Previous Next

Erste Schritte mit ImageMagick

Klonen Sie die neuesten Quellen mit dem folgenden Befehl

Installieren Sie ImageMagick über GitHub.

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

Oder verwenden Sie den folgenden Befehl, um es zu installieren.

Installieren Sie ImageMagick über RPM.

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

Bild in andere Formate konvertieren

Die Open-Source-C-Bibliothek ImageMagick ermöglicht es Softwareprogrammierern, Bilder in andere unterstützte Dateiformate in ihren eigenen Apps zu konvertieren. Benutzer müssen den Formatparameter angeben, bevor sie in ein anderes Format konvertieren. Die Bibliothek konvertiert das Bild intern früher in andere Formate, bevor die Transformationen angewendet werden. Die Bibliothek unterstützt die Konvertierung in mehrere gängige Bildformate wie BMP-, CMYK-, GIF-, JPEG-, PBM-, PNG-, RGB-, SVG-, TIFF- und XPM-Formate. Ein großartiger Aspekt der Bibliothek ist die Benutzerfreundlichkeit beim Konvertieren des Bildes. Es bietet auch die Möglichkeit, die Größe des Bildes zu reduzieren und verschiedene Effekte anzuwenden, bevor es im gewünschten Format geschrieben wird.

Konvertierung GIF in 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; 
}

Unterstützung von Bildverläufen mit C-API

Die Open-Source-C-Bibliothek ImageMagick ermöglicht es Softwareentwicklern, Bildverläufe mit mehreren Farben mithilfe von C-Befehlen zu erstellen. Mit horizontalen, vertikalen, kreisförmigen oder elliptischen Formen können Sie ganz einfach eine allmähliche Mischung aus einer oder mehreren Farben erstellen. Die Bibliothek hat die Farbverläufe durch die Verwendung mehrerer Definitionen verbessert, wie z. B. das Festlegen der Richtung des linearen Farbverlaufs, das Identifizieren der Koordinaten des Mittelpunkts für den radialen Farbverlauf, das Beschränken des Farbverlaufs auf einen größeren oder kleineren Bereich als die Bildabmessungen und so weiter an. Fügen Sie außerdem für nichtlineare Graustufenverläufe -colorspace RGB -colorspace grey hinzu, bevor Sie die Ausgabe speichern.

Erstellen Sie einen einfachen Graustufengradienten über 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();
}

Wenden Sie Spezialeffekte auf Bilder über C an

Die Open-Source-C-Bibliothek ImageMagick bietet Funktionen zum Anwenden verschiedener Arten von Effekten auf Bilder. Es bietet mehrere wichtige Funktionen wie Weichzeichnen, Schärfen, Schwellenwert, Erstellen von Schatten, Auslaufen von Formen oder Einfärben eines Bildes mit ein paar Zeilen C-Code. Dort werden auch einige spezielle Unschärfeeffekte wie Funkunschärfe und Bewegungsunschärfe unterstützt.

Der Fonteffekt wird über C API angewendet

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

Unterstützung für große Bilder

Die C-Bibliothek ImageMagick hat Unterstützung für die Arbeit mit sehr großen Bildern bereitgestellt. Es ermöglicht Entwicklern, Bilder bis zu Größen von Mega-, Giga- oder Terapixeln in ihren eigenen Bildverarbeitungsanwendungen zu öffnen, zu lesen, zu verarbeiten oder zu schreiben. Die Bibliothek ermöglicht die Größenänderung eines Bildes auf eine Viertelmillion Pixel im Quadrat. Beim Arbeiten mit großen Bildern müssen Sie sicherstellen, dass große Speicherressourcen verfügbar sind. Wenn die standardmäßige temporäre Festplattenpartition klein ist, weisen Sie ImageMagick an, eine andere Partition mit ausreichend freiem Speicherplatz zu verwenden.

 Deutsch