如何使用FreeImagePlus压缩FIBITMAP?

时间:2016-12-27 15:43:22

标签: image image-processing freeimage

我正在使用FreeImagePlus / FreeImage。我想压缩位图而不使用FreeImagePlus / FreeImage将它们保存到HDD(文件)。

给定函数FreeImage_save确实压缩,但其主要目的是将该图像保存到硬盘驱动器中的文件中。

我只对压缩感兴趣。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

saveToMemory功能完成了这项工作。压缩只能通过使用压缩和保存到内存来实现,如下所示:

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包含给定压缩格式的已保存图像。

换句话说,压缩来自存储器的原始图像,并将输出(压缩图像)放回存储器。