複製程式
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次。