算法本身参考 csdn博客的一篇文章 《用线性插值算法实现图像缩》(作者:猛禽)
这里主要总结一下实行这个算法中,自己所遇到的问题,由于实行算法的平台和系统非标准,这些总结仅限于个人记录,不具参考性。
1. 24位的Bitmap要用32位,4个字节去处理,而jpeg不用,24位就用3个字节处理。更重要一点,Bitmap的BitmapInforHead->biBitCount = 24.不能改为32. 主要是因为目前的系统已经在loadBitmap时候做了扩展处理,可能是方便BitBlt,今后要规范此函数。
2. 用结构指针时,一定要注意该结构是否分配了内存。要么用malloc位该指针开辟空间,要么先申明结构,由系统自动开辟,再用指针指向该区域。当然两种方法指针的位置不同。
3. Make sure the width of image was roundup as 4 firsly.
rowBytes = ((width + 3) & ~3) * nPixelSize;
看到系统中有这样的处理方式:rowBytes = (width * nPixelSize + 3) & ~3。这是错误,是宽度对其,而不是像素点对其。