Z
zyhml
Unregistered / Unconfirmed
GUEST, unregistred user!
procedure Tf_main.rotation(var bmp: tbitmap);//旋转90度
var newbmp:tbitmap;
i,j,k,l:integer;
tc:tcolor;
begin
newbmp:=tbitmap.Create;
i:=bmp.Width;
j:=bmp.Height;
newbmp.Width:=j;
newbmp.Height:=i;
for k:= 0 to i-1 do
for l:=0 to j-1 do
begin
tc:=bmp.Canvas.Pixels[k,l];
newbmp.Canvas.Pixels[i-l-1,k]:=tc;
end;
bmp.Assign(newbmp);
newbmp.free;
end;
正方形的没有问题,矩形的话每变换一次减少一个长宽差,若长宽差大于2倍的话,就
变成空白的
var newbmp:tbitmap;
i,j,k,l:integer;
tc:tcolor;
begin
newbmp:=tbitmap.Create;
i:=bmp.Width;
j:=bmp.Height;
newbmp.Width:=j;
newbmp.Height:=i;
for k:= 0 to i-1 do
for l:=0 to j-1 do
begin
tc:=bmp.Canvas.Pixels[k,l];
newbmp.Canvas.Pixels[i-l-1,k]:=tc;
end;
bmp.Assign(newbmp);
newbmp.free;
end;
正方形的没有问题,矩形的话每变换一次减少一个长宽差,若长宽差大于2倍的话,就
变成空白的