本例使用Delphi實現圖片水平、垂直翻轉、拉伸變形等效果處理代碼,代碼中有豐富的注釋,對學習Delphi圖形處理很有用處。完整代碼如下:
001
unit
Unit1;
002
interface
003
uses
004
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
005
StdCtrls, ExtCtrls, ExtDlgs, Buttons;
006
type
007
TForm1 =
class
(TForm)
008
OpenPictureDialog1: TOpenPictureDialog;
009
new: TBitBtn;
010
yuan: TBitBtn;
011
shui: TBitBtn;
012
chui: TBitBtn;
013
bian: TBitBtn;
014
exit: TBitBtn;
015
procedure
ForMactivate(Sender: TObject);
016
chuiClick(Sender: TObject);
017
bianClick(Sender: TObject);
018
shuiClick(Sender: TObject);
019
yuanClick(Sender: TObject);
020
newClick(Sender: TObject);
021
FormDestroy(Sender: TObject);
022
exitClick(Sender: TObject);
023
private
024
{ Private declarations }
025
public
026
{ Public declarations }
027
end
;
028
var
029
Form1: TForm1;
030
bitmap:Tbitmap;
031
i,numm:
integer
032
rect1,rect2,rect3:trect;
033
implementation
034
{$R *.DFM}
035
//自動提示載入圖形
036
TForm1
.
037
begin
038
bitmap:=Tbitmap
Create;
//創建一個圖形對象
039
OpenPictureDialog1
filter:=’Bitmap
file
(*.bmp)|*.bmp’;
//文件類型過濾
040
Form1
Title:=’請選擇一個圖像文件打開’;
//打開對話框標題
041
InitialDir:=’C:\My Documents\My Pictures’;
//初始路徑
042
if
Execute
then
043
044
bitmap
loadfromfile(OpenPictureDialog1
FileName);
//導入圖像
045
Canvas
Draw(
0
,
, Bitmap);
//在畫布上畫圖像
046
047
048
//實現垂直鏡像
049
050
051
repaint;
//窗體重畫
052
for
i:=
to
Height
do
//從畫布頂部到底部
053
054
with
rect1
055
056
left:=
057
top:=i;
058
right:=bitmap
Width;
//圖像尺寸屬性轉換
059
bottom:=i+
1
060
061
rect2
062
063
064
top:=(Form1
div
2
)-i-
065
066
bottom:=(Form1
)-i;
067
068
rect3
069
070
071
)+i-
072
073
)+i;
074
075
copyrect(rect2,bitmap
Canvas,rect1);
076
copyrect(rect3,bitmap
//在畫布上重畫圖像
077
078
079
//變形的水平鏡像
080
081
082
083
Width
//從畫布左端到右端
084
085
086
087
left:=i;
088
top:=
089
right:=i+
090
bottom:=bitmap
Height;
091
092
093
094
left:=(Form1
095
096
right:=(Form1
097
Height+i;
098
099
100
101
102
103
104
105
106
107
108
109
110
//水平鏡像
111
112
113
114
Width>
numm:= Form1
115
numm
116
117
bitblt(Form1
handle,i,
,i,bitmap
Height,
118
handle,bitmap
Width-i,
,srccopy);
119
120
121
//原圖顯示
122
123
124
//在畫布上畫原始圖像
125
126
//導入新圖像文件
127
128
129
//文件格式過濾
130
131
//導入文件
132
初始路徑
133
134
135
136
137
138
139
//釋放Bitmap 對象
140
141
142
Free;
//釋放圖像對象
143
144
145
146
close;
//關閉窗體,退出程序
147
148
本例效果圖:代碼文件:unit Unit1;i
並行端口簡稱並口,它有3個端口:數據端口、狀態
Delphi控制Windows的底層任務代碼+思路和具體實