📄 commom_func.pas
字号:
unit commom_func;
interface
uses Windows,ShowInterface, dialogs, Classes, shellapi,jpeg,Graphics,forms;
procedure adjustCombox_url;
function showPic(filename:string): IShowPic;
function GetFileSizeInt64(const FileName: string): Int64;
function GetFileFormat(const FileName: string):string;
function CompressBMP(const FileName: string):boolean;
function CompressJPG(const FileName: string):boolean;
implementation
uses left, MainForm, SysUtils, Ucompress;
//调整combox的大小
procedure adjustCombox_url;
begin
Form1.ComboBox_url.Width := Form1.Panel10.Width - 5;
end;
//返回对象
function showPic(filename:string): IShowPic;
var
pic: IShowPic;
id: integer;
str: string;
begin
//根据文件名选择ID
str := ExtractFileExt(filename);
if str = '.gif' then
id :=1 else
if ExtractFileExt(filename) = '.jpg' then
id :=2 else
if ExtractFileExt(filename) = '.jpeg' then
id :=2 else
if ExtractFileExt(filename) = '.bmp' then
id :=3 else
if ExtractFileExt(filename) = '.ico' then
id :=4 else
if ExtractFileExt(filename) = '.png' then
id :=5 else
id :=100;
//根据ID选择创建什么对象
case id of
1: pic := (TShowGifFactory.Create).CreateShowPic;
100: pic := nil;
end;
Result := pic;
end;
function GetFileSizeInt64(const FileName: string): Int64;
var
H: THandle;
Info: BY_HANDLE_FILE_INFORMATION;
Rec : Int64Rec;
begin
Result := -1;
H := CreateFile(PCHar(FileName), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
if H = INVALID_HANDLE_VALUE then Exit;
if not GetFileInformationByHandle(H, Info) then Exit;
Rec.Lo := Info.nFileSizeLow;
Rec.Hi := Info.nFileSizeHigh;
Result := Int64(Rec);
Result := round(Result/1024);
end;
function GetFileFormat(const FileName: string):string;
var
tmpstr: string;
begin
tmpstr := ExtractFileExt(FileName);
delete(tmpstr,1,1);
Result := UpperCase(tmpstr)+'文件';
end;
function CompressBMP(const FileName: string):boolean;
var
sourceBMP:Tbitmap;
desJPG:Tjpegimage;
begin
Result := false;
//Create
sourceBMP := TBitmap.Create;
desJPG:=TJPEGImage.Create;
//load
sourceBMP.LoadFromFile(FileName);
//convert
desJPG.Assign(sourceBMP);
desJPG.CompressionQuality:= compress.TrackBar1.Position;
desJPG.Compress;
if not DirectoryExists(ExtractFilePath(Application.ExeName)+'compress') then
CreateDir(ExtractFilePath(Application.ExeName)+'Compress');
desJPG.SaveToFile(ExtractFilePath(Application.ExeName) + 'Compress\' +
ExtractFileName(FileName) + 'compress.jpg');
Form1.editaddr := ExtractFilePath(Application.ExeName) + 'Compress\';
Result := true;
end;
function CompressJPG(const FileName: string):boolean;
//时间紧,这个函数我就随便写了
var
a:Tbitmap;
b:Tjpegimage;
c:Tjpegimage;
begin
Result := false;
a:=Tbitmap.Create;
b:=TJPEGImage.Create;
c:=TJPEGImage.Create;
b.LoadFromFile(FileName);
a.Assign(b);
c.Assign(a);
c.CompressionQuality:=compress.TrackBar1.Position;
c.Compress;
if not DirectoryExists(ExtractFilePath(Application.ExeName)+'compress') then
CreateDir(ExtractFilePath(Application.ExeName)+'Compress');
c.SaveToFile(ExtractFilePath(Application.ExeName) + 'Compress\' +
ExtractFileName(FileName) + 'compress.jpg');
Form1.editaddr := ExtractFilePath(Application.ExeName) + 'Compress\';
b.Free;
a.Free;
c.Free;
Result := true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -