使用其数据调整图像大小

时间:2013-01-22 15:39:36

标签: c++ image rescale

我有一个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)

如果我想将图像重新缩放到原始尺寸的一半,我该怎么做?有没有人知道一个方便的算法?

2 个答案:

答案 0 :(得分:0)

使用OpenGL怎么样?这对于OpenGL来说几乎是微不足道的,最好的部分是操作是GPU加速的。

答案 1 :(得分:0)

最简单的方法是提供OK结果,只需平均每个2x2像素方块的R,G,B值。

通常,您正在做的是对图像应用滤镜以确定每个输出像素的新值。平均值是所谓的宽度为2的盒式过滤器。您可以使用其他过滤器来提供更好或更差的结果,但平均值是我开始的地方。