我想将R8G8B8A8图像转换为R8G8B8图像,我现在得到的是一个图像,但有很多扫描线,我每个像素的字节数是4个字节,32位。复制R8G8B8A8图像到R8G8B8
图像缓冲区的类型是无符号字符[宽度*高度* 4]是源和目标是无符号字符[宽*高* 3]。
int j = 0;
int i = 0;
for (int k = 0; k < (width*height); k++)
{
for(int b = 0; b < 3; b++)
{
dst[i + b] = src[j + b];
}
i+=3;
j+=4;
}
什么是你遇到的问题? – molbdnilo
根据平台,可能会有更简单的方法来做到这一点,我知道Windows Imaging组件会为您做到这一点。我会想象libpng会做类似的事情(快速谷歌搜索显示'PNG_TRANSFORM_STRIP_ALPHA'是一件东西) – Mgetz
@molbdnilo:它有点低效(无关的循环条件,可以用'i == 3 * width *这个代码在技术上是正确的,假设打包布局 – MSalters