📄 pictureproc.pas
字号:
unit PictureProc;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, ToolWin, JPEG, StdCtrls, ImgList, XsImageEffect,
Menus, Spin, ExtDlgs;
const
PFILENAME = 'PF.CFG';
type
TFormPictureProc = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N1901: TMenuItem;
N1801: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
N20: TMenuItem;
N21: TMenuItem;
N22: TMenuItem;
N23: TMenuItem;
N24: TMenuItem;
N25: TMenuItem;
N26: TMenuItem;
N27: TMenuItem;
N28: TMenuItem;
Panel1: TPanel;
N29: TMenuItem;
N31: TMenuItem;
N32: TMenuItem;
N33: TMenuItem;
Notebook1: TNotebook;
Label1: TLabel;
Label2: TLabel;
SpinEdit1: TSpinEdit;
Button1: TButton;
Label3: TLabel;
ColorBox1: TColorBox;
Label4: TLabel;
SpinEdit2: TSpinEdit;
SpinEdit3: TSpinEdit;
Label5: TLabel;
Button2: TButton;
N34: TMenuItem;
N35: TMenuItem;
N36: TMenuItem;
N37: TMenuItem;
Label6: TLabel;
TrackBar1: TTrackBar;
Button3: TButton;
SpinEdit4: TSpinEdit;
CheckBox1: TCheckBox;
OpenPictureDialog1: TOpenPictureDialog;
N30: TMenuItem;
SaveDialog1: TSaveDialog;
procedure N32Click(Sender: TObject);
procedure N31Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure N5Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N1901Click(Sender: TObject);
procedure N1801Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure N22Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N24Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure N28Click(Sender: TObject);
procedure N35Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure N36Click(Sender: TObject);
procedure N30Click(Sender: TObject);
procedure SpinEdit4Change(Sender: TObject);
private
AsSave: Boolean;
rbp: Tbitmap;
procedure InitProc(bp: TBitmap);
procedure ReadPFCFG();
function GetImageFormProc(): TBitmap;
procedure ReplaceImageToProc(Bitmap: TBitmap);
procedure ViewMode();
procedure EditMode();
{ Private declarations }
public
procedure DragPicture(dTxt: String ='');
procedure EnabledSelect(dTxt: String ='');
procedure DisabledSelect(dTxt: String ='');
procedure SelectAll(dTxt: String ='');
procedure ActiveSelect(dTxt: String ='');
procedure LeftRotate90(dTxt: String ='');
procedure RightRotate90(dTxt: String ='');
procedure Rotate180(dTxt: String ='');
procedure CustomeRotate();
procedure RotateRePic(dTxt: String ='');
procedure LeftRightMirror(dTxt: String ='');
procedure TopBottomMirror(dTxt: String ='');
procedure ClientSize(dTxt: String ='');
procedure FullSize(dTxt: String ='');
procedure EraseBlack(dTxt: String ='');
procedure AutoSelect(dTxt: String ='');
procedure CutOutSelect(dTxt: String ='');
procedure Preferences();
procedure GetOrgPicture(dTxt: String ='');
procedure AutoProcess(dTxt: String ='');
{ Public declarations }
end;
var
FormPictureProc: TFormPictureProc;
implementation
uses StorePicture, Toolbar;
{$R *.dfm}
{ TFormZoomAdd }
procedure TFormPictureProc.InitProc(bp: TBitmap);
begin
FormToolBar:= TFormToolBar.Create(Self);
FormToolBar.Show;
ShowPicture(bp);
ReadPFCFG;
EditMode;
end;
procedure TFormPictureProc.N32Click(Sender: TObject);
begin
Close;
end;
procedure TFormPictureProc.N31Click(Sender: TObject);
begin
rbp:= TBitmap.Create;
rbp.Assign(FormPicture.GetBitmap);
ReplaceImageToProc(rbp);
AsSave:= True;
end;
procedure TFormPictureProc.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
var
id: Integer;
begin
if ParamCount>0 then
if AnsiUpperCase(ParamStr(1)) = 'VIEW' then
begin
CanClose:= True;
Exit;
end;
if not AsSave then
begin
id:= MessageBox(0,'图片未保存,是否保存?','提示',MB_ICONINFORMATION+MB_YESNOCANCEL);
if id = IDYes then
begin
CanClose:= True;
N31Click( Sender);
end else if id = IDNo then
CanClose:= True
else
CanClose:= False;
end;
end;
procedure TFormPictureProc.N5Click(Sender: TObject);
begin
EnabledSelect;
end;
procedure TFormPictureProc.N9Click(Sender: TObject);
begin
RightRotate90;
end;
procedure TFormPictureProc.N1901Click(Sender: TObject);
begin
LeftRotate90;
end;
procedure TFormPictureProc.N1801Click(Sender: TObject);
begin
Rotate180;
end;
procedure TFormPictureProc.N13Click(Sender: TObject);
begin
TopBottomMirror;
end;
procedure TFormPictureProc.N14Click(Sender: TObject);
begin
LeftRightMirror;
end;
procedure TFormPictureProc.N16Click(Sender: TObject);
begin
ClientSize;
end;
procedure TFormPictureProc.N17Click(Sender: TObject);
begin
FullSize;
end;
procedure TFormPictureProc.N18Click(Sender: TObject);
begin
EraseBlack;
end;
procedure TFormPictureProc.N19Click(Sender: TObject);
begin
AutoSelect;
end;
procedure TFormPictureProc.N22Click(Sender: TObject);
begin
CutOutSelect;
end;
procedure TFormPictureProc.N7Click(Sender: TObject);
begin
DisabledSelect;
end;
procedure TFormPictureProc.N6Click(Sender: TObject);
begin
SelectAll;
end;
procedure TFormPictureProc.N11Click(Sender: TObject);
begin
RotateRePic();
end;
procedure TFormPictureProc.DragPicture(dTxt: String);
begin
FormPicture.DragPicture;
Notebook1.PageIndex:= 0;
if dTxt = '' then
Label1.Caption:= '操作提示:按动鼠标左键拖动图片浏览...'
else
Label1.Caption:= dTxt;
end;
procedure TFormPictureProc.N24Click(Sender: TObject);
begin
DragPicture();
end;
procedure TFormPictureProc.EnabledSelect(dTxt: String);
begin
FormPicture.EnabledSelect;
Notebook1.PageIndex:= 0;
if dTxt = '' then
Label1.Caption:= '操作提示:按动鼠标左键拉出一个选择范围...'
else
Label1.Caption:= dTxt;
end;
procedure TFormPictureProc.DisabledSelect(dTxt: String);
begin
FormPicture.DisabledSelect;
Notebook1.PageIndex:= 0;
if dTxt = '' then
Label1.Caption:= '请在工具栏或菜单选择你需要的功能...'
else
Label1.Caption:= dTxt;
end;
procedure TFormPictureProc.SelectAll(dTxt: String);
begin
FormPicture.SelectAll;
Notebook1.PageIndex:= 0;
if dTxt = '' then
Label1.Caption:= '请在工具栏或菜单选择你需要的功能...'
else
Label1.Caption:= dTxt;
end;
procedure TFormPictureProc.ActiveSelect(dTxt: String);
begin
Notebook1.PageIndex:= 0;
if FormPicture.ActiveSelect then
begin
if dTxt = '' then
Label1.Caption:= '操作提示:按动鼠标左键拉出一个选择范围...'
else
Label1.Caption:= dTxt;
end else
begin
if dTxt = '' then
Label1.Caption:= '请在工具栏或菜单选择你需要的功能...'
else
Label1.Caption:= dTxt;
end;
end;
procedure TFormPictureProc.CustomeRotate();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -