我有一个C ++程序读取图像文件,处理标题,然后将图像的颜色数据存储在指向字符指针的指针
unsigned char** pixelData = new unsigned char*[header.width*header.height];
for(int i=0;i<header.width*header.height;i++)
pixelData[i] = new unsigned char[bytes2read]; //bytes2read is 3(rgb) or 4(rgba)
如果我想将图像重新缩放到原始尺寸的一半,我该怎么做?有没有人知道一个方便的算法?
答案 0 :(得分:0)
使用OpenGL怎么样?这对于OpenGL来说几乎是微不足道的,最好的部分是操作是GPU加速的。
答案 1 :(得分:0)
最简单的方法是提供OK结果,只需平均每个2x2像素方块的R,G,B值。
通常,您正在做的是对图像应用滤镜以确定每个输出像素的新值。平均值是所谓的宽度为2的盒式过滤器。您可以使用其他过滤器来提供更好或更差的结果,但平均值是我开始的地方。