我有一个程序,该程序使用BitBlt()捕获图像并将其存储在变量unsigned char* image
中。理想情况下,在将其上传到服务器之前,我想对其进行压缩,因为未压缩的文件有些大。我用zlib尝试了几种不同的方式,编写了自己的游程长度编码方法,但没有运气。我把它归结为我没有很强的理解力。
我搜索并找到了一些使用zlib的示例,但是在尝试对其进行压缩后,我的图像似乎保持不变。这是代码:
unsigned char* compressBitmap(size_t inImgSize,unsigned char* inImage)
{
uLongf srcLen = inImgSize;
uLongf destLen = compressBound(srcLen);
unsigned char* outImage = new unsigned char[destLen];
int res = compress((Bytef*)outImage,&destLen,(Bytef*)inImage,srcLen);
return outImage;
}
我检查并确认它没有返回错误。一切都已执行,映像使它很好地到达了服务器,只是根本没有压缩。我可能犯了一些愚蠢的错误,因此我们将不胜感激。