我也来一贴,特点是简单,旋转 90 度一步到位。要更快,就要使用内存交换了,
业余用用的话,就这样也可以了:
procedure TForm1.Button1Click(Sender: TObject);
var
i, j:integer;
SrcBitmap,DestBitmap:TBitmap;
t
Word;
begin
t:=GetTickCount;
try
SrcBitmap:=Image1.Picture.Bitmap;
DestBitmap:=TBitmap.Create;
DestBitmap.Width:=SrcBitmap.Height ;
DestBitmap.Height:= SrcBitmap.Width;
for i := 0 to SrcBitmap.Width-1 do
begin
for j := 0 to SrcBitmap.Height-1 do
begin
SetPixel(DestBitmap.Canvas.Handle, j,SrcBitmap.Width-i,
GetPixel(SrcBitmap.Canvas.Handle, i, j));
end;
end;
Image1.Picture.Bitmap:= DestBitmap;
finally
Caption:=Format('这次旋转 90 度耗时: %d 毫秒',[GetTickCount-t]);
FreeAndNil(DestBitmap);
end;
end;