У меня есть программа, которая захватывает изображение с помощью 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;
}
Я проверил и подтвердил, что ошибка не возвращается. Все выполняется, и изображение прекрасно подходит к серверу, просто не сжимается. Я, вероятно, делаю кучу глупых ошибок, поэтому любая помощь приветствуется.