FMX的TBitmap逐个像素反色以后(r,g,b取255补,a不变),原来PNG图像透明的背景色变为白色了?再次反色,背景色又为透明。为啥呢?
主要代码:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TBitmapData bmpData;
Image1->Bitmap->Map(TMapAccess::ReadWrite,bmpData);
int w=bmpData.Width;
int h=bmpData.Height;
for(int y=0;y<h;++y)
{
for(int x=0;x<w;++x)
{
TAlphaColor c=bmpData.GetPixel(x,y);
byte a,r,g,b;
a=TAlphaColorRec(c).A;
r=TAlphaColorRec(c).R;
g=TAlphaColorRec(c).G;
b=TAlphaColorRec(c).B;
c=MakeColor(255-r,255-g,255-b,a);
            bmpData.SetPixel(x,y,c);
        }
    }
Image1->Bitmap->Unmap(bmpData);
}
//---------------------------------------------------------------------------