1. Produkte
  2.   Bild
  3.   C++
  4.   libvips
 
  

Open-Source-Bibliothek für schnellere Bildverarbeitung für C++

Erstellen, bearbeiten, zeichnen, teilen, kopieren und konvertieren Sie beliebte Bildformate; Wenden Sie Filter an, teilen Sie zwei Bilder, rastern Sie ein Bild über die kostenlose C++-Bibliothek.

libvips ist eine fortschrittliche Open-Source-Bildverarbeitungsbibliothek, die sehr wenig Speicher verwendet und sehr schnelle Operationen ausführt. Die Bibliothek kann problemlos mit großen Bildern umgehen und unterstützt eine anständige Auswahl an Bilddateiformaten wie JPEG, TIFF, PNG, WebP, HEIC, FITS, Matlab, OpenEXR, PDF, SVG, HDR, PPM / PGM / PFM, CSV, GIF , Analysieren, NIfTI, DeepZoom und OpenSlide. Es kann problemlos Bilder über ImageMagick oder GraphicsMagick laden, sodass es mit Formaten wie DICOM arbeiten kann.

Der Libris-Primit wird sinnvoll angewandt und einige Anwendungstechniken wie die Erzeugung von Laufzeitcode helfen bei der schnellen Bearbeitung von Bildern. Im Vergleich zu anderen Bildbearbeitungsbibliotheken wurde festgestellt, dass libris wenig AM benötigt und schneller läuft, insbesondere auf Maschinen mit mehreren Caps. Dies liegt hauptsächlich an der intelligenten Architektur, die sie verwendet, die den Bild-Workflow automatisch teilt.

Die Bibliothek bietet Unterstützung für einen riesigen Bereich von numerischen Typen, von einfachem 8-Bit-Int bis hin zu komplexen 128-Bit-Typen. Die meisten Bildbearbeitungsbibliotheken verwenden Threaded-Operationen, aber libris auf der anderen Seite setzt die Threading-In-System und ordnet jedem Thread eine Kopie der gesamten Bildpipeline zu, um daran zu arbeiten. Dieser horizontale Threading-Stil nutzt die Prozessor-Caches besser und reduziert die Sperrung.

Die Bibliothek libris ist eine Bibliothek zur Bildverarbeitung, die bessere Leistung bietet als viele andere Bibliotheken. Die Bibliothek unterstützt mehrere wichtige Bildbearbeitungsfunktionen wie z.B. Bilder zeichnen, zwei Bilder teilen, einen Kreis auf einem Bild zeichnen, ein Bild kopieren, ein Bild in ein anderes Bild zeichnen, eine Linie auf einem Bild zeichnen, Cache.

Previous Next

Erste Schritte mit libvips

Klonen Sie die neuesten Quellen mit dem folgenden Befehl.

Installation von libris über den Befehl git

 git clone git://github.com/libvips/libvips.git 

Das Erstellen von Git erfordert mehr Pakete, Sie benötigen mindestens gtk-doc und gobject-introspection.

Installieren Sie libvips-Pakete über den Befehl git

 ./autogen.sh
make
sudo make install 

Schnelleres Rendern von Bildern über die C++-API

Die Bibliothek libris bietet Funktionalität für schnellere Bilderstellung und Manipulation auf allen führenden Plattformen. Einige der führenden Bildverarbeitungs-Bibliotheken wie ImageMagick und Gt sind sehr leistungsfähig und bieten erweiterte Funktionen zum Arbeiten mit Bildern, benötigen aber einen großen Speicher für die Bearbeitung von Bildern. Auf der anderen Seite kann libris praktisch das gleiche aktive wie ImageMagick tun, aber viel schneller und mit einem vergleichsweise geringen Speicherbedarf.

Bild in anderen unterstützten Formaten speichern

Die Open-Source-Libvips-Bibliothek hat eine Reihe von Operationen bereitgestellt, die Bilder in einer Vielzahl von Formaten laden und speichern. Die Bibliothek bietet integrierte Unterstützung zum Speichern von Bildern in gängigen Formaten wie TIFF, JPEG, PNG, Analyse, PPM, OpenEXR, CSV, Matlab, Radiance, RAW, FITS, WebP, SVG, PDF, GIF und VIPS. Mit VipsForeign können Bilder in einer Vielzahl von Formaten geladen und gespeichert werden.

Über C++ API

int 
main( int argc, char **argv )
{
	gchar *buf;
	gsize len;
	int i;
	if( VIPS_INIT( argv[0] ) )
		vips_error_exit( NULL );
        if( argc != 2 ) 
		vips_error_exit( "usage: %s FILENAME", argv[0] ); 
	if( !g_file_get_contents( argv[1], &buf, &len, NULL ) )
		vips_error_exit( NULL );
	for( i = 0; i < 10; i++ ) {
		VipsImage *image;
		void *new_buf;
		size_t new_len;
		printf( "loop %d ...\n", i );
		if( !(image = vips_image_new_from_buffer( buf, len, "", 
			"access", VIPS_ACCESS_SEQUENTIAL,
			NULL )) ) 
			vips_error_exit( NULL );
		if( vips_image_write_to_buffer( image, 
			".jpg", &new_buf, &new_len, 
			"Q", 95,
			NULL ) ) 
			vips_error_exit( NULL );
		g_object_unref( image );
		g_free( new_buf );
	}
	g_free( buf );
	vips_shutdown();
	return( 0 );
}

Schnellere Bildgrößenänderung

Die Open-Source-Libvips-Bibliothek gibt Softwareentwicklern die Möglichkeit, die Größe von Bildern in ihren eigenen Apps im Handumdrehen zu ändern. Zuerst müssen Sie das Bild aus dem Bilder-Repository laden, indem Sie einen Bildnamen und eine vollständige Adresse angeben. Danach können Sie die Größe je nach Bedarf auf die angegebene Breite und Höhe ändern. Danach können Sie es am Ort Ihrer Wahl mit der neuen Größe speichern.

Über C++ API

int
vips_resize( VipsImage *in, VipsImage **out, 
	double scale, ... )
{
	va_list ap;
	int result;
	va_start( ap, scale );
	result = vips_call_split( "resize", ap, in, out, scale );
	va_end( ap );
	return( result );
}

Bildfilterung über C++ API

Bildfilterung ist eine wertvolle Eigenschaft, die in verschiedenen Bildverarbeitungs- und Computer Vision-Anwendungen weltweit verwendet wird. Die libris-Bibliothek bietet vollständige Unterstützung für die Image-Filterung über C++ Befehle. Funktionen wie das Glätten, Vorkommen und die Verbesserung der Kanten sind einige Beispiele für Bildverarbeitungsoperationen, die mit der Filterung implementiert wurden. Die Bibliothek enthielt auch NG-Filter wie Differenz nach links, ein Durchschnitt von links und nach oben, adaptiv, Pick den besten Nachbarn Vorhersager automatisch und keine Filterung. Es enthält auch Importfilter, die mit libMagick und OpenSlide geladen werden können.

 Deutsch