1. Produktai
  2.   Vaizdas
  3.   C++
  4.   libvips
 
  

Atvirojo kodo greitesnio vaizdo apdorojimo biblioteka, skirta C++

Kurti, manipuliuoti, piešti, padalinti, kopijuoti ir konvertuoti populiarius vaizdo formatus; Taikykite filtrus, padalykite du vaizdus, sudėkite vaizdą naudodami nemokamą C++ biblioteką.

Libvips yra atvirojo kodo pažangi vaizdų apdorojimo biblioteka, kuri naudoja labai mažai atminties ir atlieka labai greitas operacijas. Biblioteka gali lengvai tvarkyti didelius vaizdus ir palaiko daugybę vaizdo failų formatų, tokių kaip JPEG, TIFF, PNG, WebP, HEIC, FITS, Matlab, OpenEXR, PDF, SVG, HDR, PPM / PGM / PFM, CSV, GIF. , Analizė, NIfTI, DeepZoom ir OpenSlide. Jis gali lengvai įkelti vaizdus per „ImageMagick“ arba „GraphicsMagick“, leidžiantį dirbti su tokiais formatais kaip DICOM.

Libvips primityvai taikomi protingai, o kai kurie naudojami metodai, tokie kaip vykdymo laiko kodo generavimas, padeda greitai apdoroti vaizdus. Palyginti su kitomis vaizdo apdorojimo bibliotekomis, buvo pastebėta, kad libvips reikia mažai RAM ir veikia greičiau, ypač įrenginiuose su keliais procesoriais. Taip yra daugiausia dėl jos naudojamos intelektualios architektūros, kuri automatiškai padalija vaizdo darbo eigas.

Biblioteka palaiko daugybę skaitinių tipų, nuo paprastų 8 bitų int iki sudėtingų 128 bitų. Dauguma vaizdų apdorojimo bibliotekų naudoja sriegines operacijas, tačiau libvips, kita vertus, įveda sriegius į vaizdo IO sistemą ir kiekvienai gijai priskiria viso vaizdo konvejerio kopiją, kad būtų galima su ja dirbti. Dėl šio horizontalaus sriegimo stiliaus geriau išnaudojamos procesoriaus talpyklos ir sumažinamas blokavimas.

Libvips biblioteka yra vaizdo apdorojimo biblioteka, kuri siūlo geresnį našumą nei daugelis kitų bibliotekų. Biblioteka palaiko keletą svarbių vaizdo apdorojimo funkcijų, tokių kaip vaizdų piešimas, dviejų vaizdų padalijimas, apskritimo piešimas ant paveikslėlio, vaizdo kopijavimas, paveikslėlio dažymas kitu paveikslėliu, linijos piešimas ant vaizdo, vaizdo perdavimas, talpykla. paveikslėlį, pridėkite du vaizdus, sukurkite Gauso vaizdą, nuskaitykite tašką iš vaizdo, įdėkite vaizdą į tinklelį, išsaugokite vaizdą JPEG faile ir dar daugiau.

Previous Next

Darbo su libvips pradžia

Klonuokite naujausius šaltinius naudodami šią komandą.

Įdiekite libvips per komandą git

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

Kuriant iš git reikia daugiau paketų, reikės bent jau gtk-doc ir gobject-introspection.

Įdiekite libvips paketus naudodami git komandą

 ./autogen.sh
make
sudo make install 

Greitesnis vaizdų atvaizdavimas naudojant C++ API

Libvips biblioteka suteikė funkcionalumą greitesniam vaizdų kūrimui ir manipuliavimui visose pirmaujančiose platformose. Kai kurios pirmaujančios vaizdo apdorojimo bibliotekos, pvz., ImageMagick ir GD bibliotekos, yra labai galingos ir teikia pažangias funkcijas dirbant su vaizdais, tačiau vaizdams apdoroti reikia daug atminties. Kita vertus, libvips gali atlikti beveik tuos pačius aktyvius veiksmus, kaip ir ImageMagick, bet daug greičiau ir su palyginti nedideliu atminties plotu.

Išsaugokite vaizdą į kitus palaikomus formatus

Atvirojo kodo libvips biblioteka pateikė operacijų, kurios įkelia ir išsaugo vaizdus įvairiais formatais, rinkinį. Bibliotekoje yra integruotas palaikymas vaizdams išsaugoti tokiais populiariais formatais kaip TIFF, JPEG, PNG, Analyze, PPM, OpenEXR, CSV, Matlab, Radiance, RAW, FITS, WebP, SVG, PDF, GIF ir VIPS. VipsForeign gali būti naudojamas vaizdams įkelti ir išsaugoti įvairiais formatais.

Skaitykite ir rašykite vaizdus į atmintį naudodami 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 );
}

Greitesnis vaizdo dydžio keitimas

Atvirojo kodo libvips biblioteka suteikia programinės įrangos kūrėjams galią keisti vaizdų dydį savo programose. Pirmiausia turite įkelti vaizdą iš vaizdų saugyklos, pateikdami vaizdo pavadinimą ir visą adresą. Po to galite pakeisti jo dydį iki nurodyto pločio ir aukščio pagal savo poreikius. Po to galite išsaugoti jį pasirinktoje vietoje su nauju dydžiu.

Skaitykite ir rašykite vaizdus į atmintį naudodami 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 );
}

Vaizdo filtravimas per C++ API

Vaizdo filtravimas yra vertinga funkcija, naudojama įvairiose vaizdo apdorojimo ir kompiuterinio matymo programose visame pasaulyje. Libvips biblioteka suteikia visišką vaizdo filtravimo palaikymą naudojant C++ komandas. Funkcijos, tokios kaip išlyginimas, paryškinimas ir kraštų tobulinimas, yra keletas vaizdo apdorojimo operacijų, įgyvendinamų su filtravimu, pavyzdžiai. Bibliotekoje taip pat buvo PNG filtrai, pvz., skirtumas į kairę, vidurkis į kairę ir aukštyn, prisitaikantis, automatiškai pasirenkamas geriausio kaimyno numatytojas ir jokio filtravimo. Jame taip pat yra importavimo filtrų, kuriuos galima įkelti naudojant libMagick ir OpenSlide.

 Lietuvių