我有一个代表Array2D的图像:
template<class T = uint8_t>
Array2D<T> mPixData[4]; ///< 3 component channels + alpha channel.
评论在图书馆。我没有关于解释的线索。
有人会:
不知道这是什么图书馆,这里是黑暗中的刺:
template<class T = uint8_t> Array2D<T>
1)3个分量通道 - 红绿蓝通道。 alpha通道讲述图像透明度
2)您可以使用许多算法来调整图像大小。最简单的是丢弃额外的像素。另一个简单的做是插值
3个分量通道代表红绿蓝(也称为RGB)通道。第四个渠道ALPHA是透明度渠道。
像素由mPixData[4]
定义
mPixData[0] -> R
mPixData[1] -> G
mPixData[2] -> B
mPixData[3] -> A
因此,图像可以表示为mPixData [4]的向量或数组。如你所说,在这种情况下是Array2D<T> mPixData[4];
Resize/rescale/resample an image不是一个简单的过程。网上有很多关于它的资料,我认为你应该考虑使用图书馆来做这件事。检查CxImage(Windows / Linux)。
有一些代码here但我没有测试它。检查resample()函数。
嗨,3个频道是rgb + alpha频道。所以红绿蓝通道和alpha通道。降尺度有几种方法。你可以采用例如每4个像素,但结果看起来很糟糕,看看不同的插值方法,例如:http://en.wikipedia.org/wiki/Bilinear_interpolation。
或者如果你想使用库:http://www.imagemagick.org/Magick++/
或者如karlphillip所述:http://www.xdp.it/cximage.htm