如何使用 FreeImagePlus 压缩 FIBITMAP?
How to compress FIBITMAP using FreeImagePlus?
我正在使用 FreeImagePlus/FreeImage。我想压缩位图而不使用 FreeImagePlus/FreeImage 将它们保存到 HDD(文件)。
给定的函数 FreeImage_save
确实会压缩,但其主要目的是将该图像保存到硬盘驱动器中的文件中。
我只对压缩感兴趣。我怎样才能做到这一点?
saveToMemory
函数可以完成这项工作。 Compress only可以通过compress and save to memory来实现,如下:
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
包含以给定压缩格式保存的图像。
换句话说,来自内存的原始图像被压缩,输出(压缩图像)被放回内存。
我正在使用 FreeImagePlus/FreeImage。我想压缩位图而不使用 FreeImagePlus/FreeImage 将它们保存到 HDD(文件)。
给定的函数 FreeImage_save
确实会压缩,但其主要目的是将该图像保存到硬盘驱动器中的文件中。
我只对压缩感兴趣。我怎样才能做到这一点?
saveToMemory
函数可以完成这项工作。 Compress only可以通过compress and save to memory来实现,如下:
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
包含以给定压缩格式保存的图像。
换句话说,来自内存的原始图像被压缩,输出(压缩图像)被放回内存。