⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xuanz.txt

📁 delphi源代码程序
💻 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 + -