我要把tga图片的数据流解码并显示出来数据我已经解码出来了,但是关于tga的像素排列是bgr(a)的,而我需要的是argb,照理说只需要把4个像素交换下位置就可以但是奇怪的是: 如果我交换了位置,图片显示是黑白色的; 而不交换直接将bgr(a)返回显示的图片颜色和原图很接近,但颜色也是不对的!!是在Linux下显示,明确要得到argb for(; i< tgainfo->DataSize; i+=tgainfo->BitsPixel/8 )
{
if(tgainfo->BitsPixel == 32)
{
argb_dataBuf[i+0]= dataBuf[i+0];
argb_dataBuf[i+1]= dataBuf[i+1];
argb_dataBuf[i+2]= dataBuf[i+2];
argb_dataBuf[i+3]= dataBuf[i+3];
}
else
{
argb_dataBuf[j+0] = dataBuf[i+0];
argb_dataBuf[j+1] = dataBuf[i+1];
argb_dataBuf[j+2] = dataBuf[i+2];
argb_dataBuf[j+3] = 255;
}
j+=4;
}
sw_mem_free(hMem,dataBuf,__FILE__,__LINE__);
return argb_dataBuf;不知道这里使用这种位交换行不行,还是一定要使用位移的方式!?
             m_pRGBAData[dwOffset x] = (r<<24L) (g<<16L) (b<<8L) (a); 不知道问题是否出在这里我现在是很迷惑啊