📄 xuanz.txt
字号:
procedure TFormPageEdit.Button2Click(Sender: TObject);
var
Bmp: TBitmap;
begin
Button2.Enabled := False;
Bmp := TBitmap.Create();
Bmp.Width := ImagePageEdit.Width ;
Bmp.Height := ImagePageEdit.Height;
Bmp.Assign(ImagePageEdit.Picture.Bitmap);
Bmp.SaveToFile('1.bmp');
bmp_rotate(ImagePageEdit.Picture.Bitmap, Bmp, 10 - TrackBarPage.Position);
//showmessage(IntToStr(10-TrackBarPage.Position));
ImagePageEdit.Picture.Bitmap.Assign(Bmp);
Bmp.Free();
Button2.Enabled := True;
end;
procedure RotateBmp(bmp: TBitmap; Center: TPoint; angle: Integer);
var
tmpbmp: TBitmap;
i, j, x, y, px, py: Integer;
cAngle, sAngle: extended;
p1, p2: Pchar;
begin
while angle < 0 do
angle := angle + 360;
angle := angle mod 360;
sAngle := sin(- angle * pi / 180);
cAngle := cos(- angle * pi / 180);
tmpbmp := tbitmap.create;
tmpbmp.assign(bmp);
for i := 0 to tmpbmp.height - 1 do
begin
p1 := pchar(tmpbmp.scanline[i]);
py := 2 * (i - center.y) - 1;
for j := 0 to tmpbmp.width - 1 do
begin
px := 2 * (j - center.x) - 1;
x := (round(px * cAngle - py * sAngle) - 1) div 2 + center.x;
y := (round(px * sAngle + py * cAngle) - 1) div 2 + center.y;
if (x>=0) and (x<tmpbmp.width) and (y>=0) and (y<=tmpbmp.height) then
begin
p2 := pchar(bmp.scanline[y]) + x * 3;
move(p1^, p2^, 3);
end;
inc(p1, 3);
end;
end;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -