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

📄 commom_func.pas

📁 基于DELPHI的图片浏览系统设计与实现
💻 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 + -