1. Produkti
  2.   Attēls
  3.   C++
  4.   libvips
 
  

Atvērtā pirmkoda ātrākas attēlu apstrādes bibliotēkas C++

Izveidot, manipulēt, zīmēt, dalīt, kopēt un konvertēt populāros attēlu formātus; Lietojiet filtrus, sadaliet divus attēlus, ievelciet attēlu režģī, izmantojot bezmaksas C++ bibliotēku.

Libvips ir atvērtā koda uzlabotas attēlu apstrādes bibliotēka, kas izmanto ļoti maz atmiņas un veic ļoti ātras darbības. Bibliotēka var viegli apstrādāt lielus attēlus un atbalsta pienācīgu attēlu failu formātu klāstu, piemēram, JPEG, TIFF, PNG, WebP, HEIC, FITS, Matlab, OpenEXR, PDF, SVG, HDR, PPM / PGM / PFM, CSV, GIF. , Analīze, NIfTI, DeepZoom un OpenSlide. Tas var viegli ielādēt attēlus, izmantojot ImageMagick vai GraphicsMagick, ļaujot tam strādāt ar tādiem formātiem kā DICOM.

Libvips primitīvi tiek pielietoti saprātīgi, un daži lietojuma paņēmieni, piemēram, izpildlaika koda ģenerēšana, palīdz ātri apstrādāt attēlus. Salīdzinot ar citām attēlu apstrādes bibliotēkām, tika atzīmēts, ka libvips ir nepieciešams maz RAM un darbojas ātrāk, it īpaši mašīnās ar vairākiem CPU. Tas galvenokārt ir saistīts ar viedo arhitektūru, ko tā izmanto, kas automātiski sadala attēlu darbplūsmas.

Bibliotēka nodrošina atbalstu milzīgam skaitļu veidu klāstam, sākot no vienkārša 8 bitu int līdz sarežģītajam 128 bitu. Lielākā daļa attēlu apstrādes bibliotēku izmanto vītņotas darbības, bet libvips, no otras puses, ievieto pavedienu attēla IO sistēmā un katram pavedienam piešķir visa attēla konveijera kopiju, lai strādātu ar to. Šis horizontālais pavedienu veidošanas stils ļauj labāk izmantot procesora kešatmiņas un samazina bloķēšanu.

Libvips bibliotēka ir attēlu apstrādes bibliotēka, kas piedāvā labāku veiktspēju nekā daudzas citas bibliotēkas. Bibliotēka ir nodrošinājusi atbalstu vairākām svarīgām attēlu apstrādes funkcijām, piemēram, attēlu zīmēšanai, divu attēlu sadalīšanai, apļa zīmēšanai uz attēla, attēla kopēšanai, attēla krāsošanai citā attēlā, līnijas zīmēšanai uz attēla, attēla izliešanai, kešatmiņai. attēlu, pievienojiet divus attēlus, izveidojiet Gausa attēlu, nolasiet punktu no attēla, izveidojiet attēlu režģī, saglabājiet attēlu JPEG failā un daudz ko citu.

Previous Next

Darba sākšana ar libvips

Klonējiet jaunākos avotus, izmantojot šo komandu.

Instalējiet libvips, izmantojot git komandu

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

Veidojot no git, ir nepieciešams vairāk pakotņu, jums būs nepieciešams vismaz gtk-doc un gobject-introspekcija.

Instalējiet libvips pakotnes, izmantojot git komandu

 ./autogen.sh
make
sudo make install 

Ātrāka attēlu renderēšana, izmantojot C++ API

Libvips bibliotēka ir nodrošinājusi funkcionalitāti ātrākai attēlu izveidei un manipulācijām visās vadošajās platformās. Dažas no vadošajām attēlu apstrādes bibliotēkām, piemēram, ImageMagick un GD bibliotēkas, ir ļoti jaudīgas un nodrošina uzlabotas funkcijas darbam ar attēliem, taču tām ir nepieciešams liels atmiņas apjoms attēlu apstrādei. No otras puses, libvips var veikt praktiski tādas pašas aktīvās darbības kā ImageMagick, taču daudz ātrāk un ar salīdzinoši nelielu atmiņas nospiedumu

Saglabājiet attēlu citos atbalstītajos formātos

Atvērtā koda libvips bibliotēka ir nodrošinājusi darbību kopumu, kas ielādē un saglabā attēlus dažādos formātos. Bibliotēkā ir iekļauts iebūvēts atbalsts attēlu saglabāšanai populāros formātos, piemēram, TIFF, JPEG, PNG, Analyze, PPM, OpenEXR, CSV, Matlab, Radiance, RAW, FITS, WebP, SVG, PDF, GIF un VIPS. VipsForeign var izmantot, lai ielādētu un saglabātu attēlus dažādos formātos.

Lasiet un ierakstiet attēlus atmiņā, izmantojot 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 );
}

Ātrāka attēla izmēru maiņa

Atvērtā koda libvips bibliotēka sniedz programmatūras izstrādātājiem iespēju lidojuma laikā mainīt attēlu izmērus savās lietotnēs. Pirmkārt, jums ir jāielādē attēls no attēlu krātuves, norādot attēla nosaukumu un pilnu adresi. Pēc tam jūs varat mainīt tā izmēru uz norādīto platumu un augstumu atbilstoši savām vajadzībām. Pēc tam varat to saglabāt izvēlētajā vietā ar jauno izmēru.

Lasiet un ierakstiet attēlus atmiņā, izmantojot 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 );
}

Attēlu filtrēšana, izmantojot C++ API

Attēlu filtrēšana ir vērtīga funkcija, ko izmanto dažādās attēlu apstrādes un datorredzes lietojumprogrammās visā pasaulē. Libvips bibliotēka nodrošina pilnīgu atbalstu attēlu filtrēšanai, izmantojot C++ komandas. Tādas funkcijas kā izlīdzināšana, asināšana un malu uzlabošana ir daži attēlu apstrādes darbību piemēri, kas īstenotas ar filtrēšanu. Bibliotēkā bija iekļauti arī PNG filtri, piemēram, atšķirība pa kreisi, vidējais rādītājs pa kreisi un uz augšu, adaptīvs, automātiski izvēlēties labāko kaimiņu prognozētāju un bez filtrēšanas. Tas ietver arī importēšanas filtrus, kurus var ielādēt, izmantojot libMagick un OpenSlide.

 Latviski