?? unit1.~pas
字號:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Image1: TImage;
B_load: TBitBtn;
OpenDialog1: TOpenDialog;
B_ver: TBitBtn;
B_hor: TBitBtn;
B_transform: TBitBtn;
procedure B_loadClick(Sender: TObject);
procedure B_verClick(Sender: TObject);
procedure B_horClick(Sender: TObject);
procedure B_transformClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
bmp: TBitmap; //圖片文件
implementation
{$R *.dfm}
procedure TForm1.B_loadClick(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
bmp:=TBitmap.Create;
bmp.LoadFromFile(self.OpenDialog1.FileName);
Image1.Picture.Bitmap:=bmp; //載入圖片
end;
end;
procedure TForm1.B_verClick(Sender: TObject);
var
maxwidth,maxheight: integer;
i,j,k: integer;
temp: TColor;
begin
maxwidth:=Image1.Picture.Bitmap.Width-1;
maxheight:=Image1.Picture.Bitmap.Height-1;
if (maxheight mod 2=0) then
k:=(maxheight-2) div 2
else
k:=(maxheight-1) div 2;
for i:=0 to k do
for j:=0 to maxwidth do
begin
temp:=Image1.Canvas.Pixels[j,i];
Image1.Canvas.Pixels[j,i]:=Image1.Canvas.Pixels[j,maxheight-i];
Image1.Canvas.Pixels[j,maxheight-i]:=temp;
end;
Image1.Refresh; //刷新顯示
end;
procedure TForm1.B_horClick(Sender: TObject);
var
maxwidth,maxheight: integer;
i,j,k: integer;
temp: TColor;
begin
maxwidth:=Image1.Picture.Bitmap.Width-1;
maxheight:=Image1.Picture.Bitmap.Height-1;
if (maxwidth mod 2=0) then
k:=(maxwidth-2) div 2
else
k:=(maxwidth-1) div 2;
for i:=0 to maxheight do
for j:=0 to k do
begin
temp:=Image1.Canvas.Pixels[j,i];
Image1.Canvas.Pixels[j,i]:=Image1.Canvas.Pixels[maxwidth-j,i];
Image1.Canvas.Pixels[maxwidth-j,i]:=temp;
end;
Image1.Refresh; //刷新顯示
end;
procedure TForm1.B_transformClick(Sender: TObject);
var
maxwidth,maxheight: integer;
i,j,k: integer;
flag: Boolean;
temp: TColor;
begin
maxwidth:=Image1.Picture.Bitmap.Width-1;
maxheight:=Image1.Picture.Bitmap.Height-1;
if (maxwidth mod 2=0) then
begin
k:=(maxwidth-2) div 2;
flag:=True;
end
else
begin
k:=(maxwidth-1)div 2;
flag:=False;
end;
for i:=0 to k do
for j:=0 to maxheight do
begin
temp:=Image1.Canvas.Pixels[i,j];
Image1.Canvas.Pixels[i,j]:=Image1.Canvas.Pixels[maxwidth-i,maxheight-j];
Image1.Canvas.Pixels[maxwidth-i,maxheight-j]:=temp;
end;
if (maxheight mod 2)=0 then
k:=(maxheight-2) div 2
else
k:=(maxheight-1) div 2;
if flag then
begin
i:=maxwidth div 2;
for j:=0 to k do
begin
temp:=Image1.Canvas.Pixels[i,j];
Image1.Canvas.Pixels[i,j]:=Image1.Canvas.Pixels[i,maxheight-j];
Image1.Canvas.Pixels[i,maxheight-j]:=temp;
end;
end;
Image1.Refresh; //刷新顯示
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -