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);
}
//---------------------------------------------------------------------------
主要代码:
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);
}
//---------------------------------------------------------------------------
解决方案 »
- 请各位高手帮帮忙!!为何提示没有执行可选特性???
- UdpSocket控件的使用
- 怎样实现模糊定位的locate
- DBGrid中或DBGridEh中如何根据数据表某字段的值设定某字段单元格的颜色。
- TCustomWinSocket.ReceiveBuf(var buf,size:integer);中的size是不是有上限?
- 授人委托,要做个单机版的点歌系统,用视频卡输出到电视。
- 如何在datamodal中关闭整个应有程序?
- 500分求解问题,得道高手请进吧。
- 如何把DBGRID里的内容清空?
- 关于lookup的问题,请高手教路,谢谢.
- Fmx::Graphics::TBitmap::ApplyMask函数二进制代码在哪个库里?为啥默认无法链接?
- 数据库录入和处理问题
c=MakeColor(255-255,255-255,255-255,a);是纯黑