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

📄 unit1.pas

📁 有关多媒体的各个细节
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, ExtDlgs;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    OpenPictureDialog1: TOpenPictureDialog;
    Button5: TButton;
    Button4: TButton;
    procedure FormActivate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  bitmap:tbitmap;
  i,numm:integer;
  rect1,rect2,rect3:trect;

implementation

{$R *.DFM}
//自动提示装入图形
procedure TForm1.FormActivate(Sender: TObject);
begin
 bitmap:=tbitmap.create;
 OpenPictureDialog1.filter:='Bitmap file(*.bmp)|*.bmp';
 if OpenPictureDialog1.Execute then
  begin
   bitmap.loadfromfile(OpenPictureDialog1.filename);
   Form1.Canvas.Draw(0,0, Bitmap);
  end;
end;

// 垂 直 镜 像
procedure TForm1.Button1Click(Sender: TObject);
begin
  form1.repaint;
  for i:=0 to bitmap.height do
  begin
    with rect1 do
     begin
       left:=0;
       top:=i;
       right:=bitmap.width;
       bottom:=i+1;
     end;
    with rect2 do
     begin
      left:=0;
      top:=(form1.height div 2)-i-1;
      right:=bitmap.width;
      bottom:=(form1.height div 2)-i;
     end;
    with rect3 do
     begin
      left:=0;
      top:=(form1.height div 2)+i-1;
      right:=bitmap.width;
      bottom:=(form1.height div 2)+i;
     end;
   canvas.copyrect(rect2,bitmap.canvas,rect1);
   canvas.copyrect(rect3,bitmap.canvas,rect1);
  end;
end;

// 变 形 的 水 平 镜 像
procedure TForm1.Button2Click(Sender: TObject);
begin
  form1.repaint;
  for i:=0 to bitmap.width do
   begin
    with rect1 do
     begin
      left:=i;
      top:=0;
      right:=i+1;
      bottom:=bitmap.height;
     end;
    with rect2 do
     begin
      left:=(form1.width div 2)-i-1;
      top:=i;
      right:=(form1.width div 2)-i;
      bottom:=bitmap.height+i;
     end;
    with rect3 do
     begin
      left:=(form1.width div 2)+i-1;
      top:=i;
      right:=(form1.width div 2)+i;
      bottom:=bitmap.height+i;
     end;
    canvas.copyrect(rect2,bitmap.canvas,rect1);
    canvas.copyrect(rect3,bitmap.canvas,rect1);
 end;
end;

// 水 平 镜 像
procedure TForm1.Button3Click(Sender: TObject);
begin
 form1.repaint;
  if bitmap.width>0 then numm:= form1.width div 2;
  for i:=0 to numm do
   begin
    bitblt(form1.canvas.handle,i,0,i,bitmap.height,
    bitmap.canvas.handle,bitmap.width-i,0,srccopy);
   end;
end;

//原图显示
procedure TForm1.Button4Click(Sender: TObject);
begin
   Form1.Canvas.Draw(0,0, Bitmap);
end;

//选择新图显示
procedure TForm1.Button5Click(Sender: TObject);
begin
 OpenPictureDialog1.filter:='Bitmap file(*.bmp)|*.bmp';
 if OpenPictureDialog1.Execute then
  begin
   bitmap.loadfromfile(OpenPictureDialog1.filename);
   Form1.Canvas.Draw(0,0, Bitmap);
  end;
end;
//结束时,释放Bitmap对象
procedure TForm1.FormDestroy(Sender: TObject);
begin
  bitmap.Free;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -