复制程式
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Graphics::TBitmap *TheB, *TempB;
Byte *pyt1,*pyt2;
int W,H;
TempB=new Graphics::TBitmap();
TheB=Image1->Picture ->Bitmap;
TempB->Assign(TheB);
W=TheB->Width;
H=TheB->Height;
for(int y=0;y<H;y++)
{
pyt1=(Byte*)TempB->ScanLine[y];
pyt2=(Byte*)TheB->ScanLine[y];
for(int x=0;x<W*3;x+=3)
{
pyt1[x]=pyt2[W-1-x];
pyt1[x+1]=pyt2[W-1-(x+1)];
pyt1[x+2]=pyt2[W-1-(x+2)];
}
TheB->Assign(TempB);
}
delete TempB;
Label5->Caption ="状态:已完成翻转";
}
大概是这样,因为灰阶只有1Byte,所以只要做一次,
彩色有RGB共3Byte,所以要做三次。
不过如果你的图还有附加透明度的话(如PNG),就变成
ARGB共4Byte,就要处理4次。