我正在使用FreeImagePlus / FreeImage。我想压缩位图而不使用FreeImagePlus / FreeImage将它们保存到HDD(文件)。
给定函数FreeImage_save
确实压缩,但其主要目的是将该图像保存到硬盘驱动器中的文件中。
我只对压缩感兴趣。我怎样才能做到这一点?
答案 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
包含给定压缩格式的已保存图像。
换句话说,压缩来自存储器的原始图像,并将输出(压缩图像)放回存储器。