2016-12-27 3 views
-1

Я использую FreeImagePlus/FreeImage. Я хочу сжать растровые изображения без сохранения их на жесткий диск (файлы) с помощью FreeImagePlus/FreeImage.Как сжать FIBITMAP с помощью FreeImagePlus?

Данная функция FreeImage_save сжимает, но ее основная цель - сохранить это изображение в файле.

Меня интересует только компресс. Как я могу это сделать?

+0

Почему отрицательный голос, любое оправдание? – tod

+0

Google: [эта страница] (http://freeimage.sourceforge.net/fip/classfipMemoryIO.html) рассказывает об образах ввода/вывода с потоками памяти, например 'save (FREE_IMAGE_FORMAT fif, FIBITMAP * dib, int flags = 0) '* Сохраняет dib в потоке памяти. * –

ответ

0

Сжать только могут быть реализованы с помощью сжатия и сохранения в памяти, следующим образом:

fipImage img; 
img.load("file.jpg");  
if (!img.isValid()) 
    cout <<"could not read the input image" << endl; 

//For compress only: save image to memory 

fipMemoryIO memIO; 

if(!img.saveToMemory(CompressionFormat[j], memIO, 0)); 
cout<< "could not compress image" << endl; 

Теперь memIO содержит сохраненное изображение.

Смежные вопросы