亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.pas

?? JPG圖片壓縮,根據設定的圖像質量有損壓縮圖像
?? PAS
字號:
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ShellAPI, ShlObj, ComCtrls, Math, StrUtils;

type
  TForm1 = class(TForm)
    btn1: TButton;
    btn2: TButton;
    lbl1: TLabel;
    btn3: TButton;
    edt1: TEdit;
    pb1: TProgressBar;
    StaticText1: TStaticText;
    Label3: TLabel;
    edt4: TEdit;
    StaticText2: TStaticText;
    procedure btn2Click(Sender: TObject);
    procedure btn3Click(Sender: TObject);
    procedure btn1Click(Sender: TObject);
    procedure FindSubDir(DirName: string; FileString: TStrings);
    procedure SearchFilename(const Dir, Ext: string; Files: TStrings);
    function MakeFileList(Path,FileExt:string):TStringList ;
  private
    { Private declarations }
    function IsValidDir(SearchRec: TSearchRec): Boolean;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Dir:string;
implementation

{$R *.dfm}



function BrowseDialogCallBack
  (Wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM):
  integer stdcall;
var
  wa, rect: TRect;
  dialogPT: TPoint;
begin
  //center in work area
  if uMsg = BFFM_INITIALIZED then
  begin
    wa := Screen.WorkAreaRect;
    GetWindowRect(Wnd, Rect);
    dialogPT.X := ((wa.Right - wa.Left) div 2) -
      ((rect.Right - rect.Left) div 2);
    dialogPT.Y := ((wa.Bottom - wa.Top) div 2) -
      ((rect.Bottom - rect.Top) div 2);
    MoveWindow(Wnd,
      dialogPT.X,
      dialogPT.Y,
      Rect.Right - Rect.Left,
      Rect.Bottom - Rect.Top,
      True);
  end;

  Result := 0;
end; (*BrowseDialogCallBack*)


function BrowseDialog
  (const Title: string; const Flag: integer): string;
var
  lpItemID: PItemIDList;
  BrowseInfo: TBrowseInfo;
  DisplayName: array[0..MAX_PATH] of char;
  TempPath: array[0..MAX_PATH] of char;
begin
  Result := '';
  FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
  with BrowseInfo do
  begin
    hwndOwner := Application.Handle;
    pszDisplayName := @DisplayName;
    lpszTitle := PChar(Title);
    ulFlags := Flag;
    lpfn := BrowseDialogCallBack;
  end;
  lpItemID := SHBrowseForFolder(BrowseInfo);
  if lpItemId <> nil then
  begin
    SHGetPathFromIDList(lpItemID, TempPath);
    Result := TempPath;
    GlobalFreePtr(lpItemID);
  end;
end;

procedure TForm1.btn2Click(Sender: TObject);

begin
//  mmo1.Clear;
  pb1.Position := 0;
  StaticText1.Caption := '處理進度:';
  edt1.Text := BrowseDialog('請指定圖片所在的文件夾!', 0);
  Dir := edt1.Text+'\';
end;

procedure TForm1.btn3Click(Sender: TObject);
begin
  close;
end;


procedure TForm1.btn1Click(Sender: TObject);
var
  bmp: TBitmap;
  jpg: TJpegImage;
  stemp: string;
  i: Integer;
  filelstJpg: TStringList;
  a: Integer;
begin
  a := 0;
  pb1.Min := 0;
  bmp := TBitmap.Create;
  jpg := TJpegImage.Create;
  //filelstJpg := TStringList.Create;
  //SearchFilename(edt1.Text+'\','.jpg',filelstJpg);
  filelstJpg := MakeFileList(edt1.Text,'.jpg') ;
  try
     a := filelstJpg.Count;
    pb1.Max := filelstJpg.Count;
    if filelstJpg.Count <> 0 then
    begin

      for i := 0 to filelstJpg.Count - 1 do
      begin
        try

            jpg.LoadFromFile(filelstJpg.Strings[i]);
            bmp.height := jpg.Height;
            bmp.Width := jpg.Width;
            bmp.Canvas.StretchDraw(bmp.Canvas.ClipRect, jpg);
            jpg.Assign(bmp);
            jpg.CompressionQuality := StrToInt(edt4.Text); //StrToInt('75');
            jpg.Compress;
            sTemp := filelstJpg.Strings[i] + '.jpg';
            jpg.SaveToFile(sTemp);
            DeleteFile(filelstJpg.Strings[i]);
            CopyFile(PChar(sTemp), PChar(filelstJpg.Strings[i]), True);
            DeleteFile(sTemp);
            pb1.Position := pb1.Position + 1;
            StaticText1.Caption := '處理進度:' + inttostr(trunc((pb1.Position / pb1.Max) * 100)) + '%';
            StaticText2.Caption := '處理張數:'+ IntToStr(Trunc(i+1));
        except
            Application.MessageBox(PChar(filelstJpg.Strings[i]+'處理出錯!'),'系統提示',mrOk);

        end;

      end;
      Application.MessageBox(PChar('共'+inttostr(a)+'個JPG格式圖片處理完畢!'+#13#10),'系統提示',mrOk);
    end
    else
    begin
      ShowMessage('未發現JPG格式的圖片文件!' + #13#10 )
    end;
  finally
    jpg.Free;
    bmp.Free;
    filelstJpg.free;
    MessageBox(0, PChar('共計處理圖片:' + inttostr(a ) + '個!'), '提示', MB_OK)

  end;
end;

procedure TForm1.SearchFilename(const Dir, Ext: string; Files: TStrings);
var
  Found: TSearchRec;
  i: integer;
  Dirs: TStrings;
  Finished: integer;
  StopSearch: Boolean;
begin
  StopSearch := False;
  Dirs := TStringList.Create;
  Finished := FindFirst(Dir + '*.*', 63, Found);
  while (Finished = 0) and not (StopSearch) do
  begin
    if (Found.Name <> '.') then
    begin
      if (Found.Attr and faDirectory) = faDirectory then
        Dirs.Add(Dir + Found.Name)
      else
        if Pos(UpperCase(Ext), UpperCase(Found.Name)) > 0 then
          Files.Add(Dir + Found.Name);
    end;
    Finished := FindNext(Found);
  end;
  FindClose(Found);
  if not StopSearch then
    for i := 0 to Dirs.Count - 1 do
        SearchFilename(Dirs[i], Ext, Files);
  Dirs.Free;
end;

procedure TForm1.FindSubDir(DirName: string; FileString: TStrings);
var
 searchRec: TsearchRec;
begin
//找出所有下級子目錄。
  if (FindFirst(DirName + '*.*', faDirectory, SearchRec) = 0) then
  begin
    if IsValidDir(SearchRec) then
      FileString.Add(DirName + SearchRec.Name);
    while (FindNext(SearchRec) = 0) do
    begin
      if IsValidDir(SearchRec) then
        FileString.Add(DirName + SearchRec.Name);
    end;
  end;
  FindClose(SearchRec);
end;

function TForm1.IsValidDir(SearchRec: TSearchRec): Boolean;
begin
  if (SearchRec.Attr = 16) and (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
    Result := True
  else
    Result := False;
end;

function TForm1.MakeFileList(Path,FileExt:string):TStringList ;
var
sch:TSearchrec;
begin
  Result:=TStringlist.Create;

  if rightStr(trim(Path), 1) <> '\' then
      Path := trim(Path) + '\'
  else
      Path := trim(Path);

  if not DirectoryExists(Path) then
  begin
      Result.Clear;
      exit;
  end;

  if FindFirst(Path + '*', faAnyfile, sch) = 0 then
  begin
      repeat
         Application.ProcessMessages;
         if ((sch.Name = '.') or (sch.Name = '..')) then Continue;
         if DirectoryExists(Path+sch.Name) then
         begin
           Result.AddStrings(MakeFileList(Path+sch.Name,FileExt));
         end
         else
         begin
           if (UpperCase(extractfileext(Path+sch.Name)) = UpperCase(FileExt)) or (FileExt='.*') then
           Result.Add(Path+sch.Name);
         end;
      until FindNext(sch) <> 0;
      SysUtils.FindClose(sch);
  end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩成人免费电影| 亚洲线精品一区二区三区八戒| 欧美私模裸体表演在线观看| av综合在线播放| av网站一区二区三区| 波多野结衣91| 在线观看一区日韩| 欧美日韩中文精品| 欧美三级韩国三级日本三斤| 欧美片在线播放| 777奇米成人网| 2022国产精品视频| 日本一区二区三区四区| 中文字幕欧美日韩一区| 中文字幕在线不卡一区二区三区 | 亚洲国产欧美日韩另类综合| 亚洲成人先锋电影| 首页亚洲欧美制服丝腿| 久草中文综合在线| 国产精品69毛片高清亚洲| 成人avav影音| 欧美亚洲动漫精品| 欧美成人vps| 亚洲三级视频在线观看| 天堂蜜桃一区二区三区| 国产精一区二区三区| 一本色道综合亚洲| 91精品国产91久久综合桃花| 国产蜜臀av在线一区二区三区| 亚洲精品欧美二区三区中文字幕| 日韩精品五月天| 国产成a人无v码亚洲福利| 欧洲一区二区三区免费视频| 欧美电视剧免费全集观看| 中文字幕在线一区| 奇米精品一区二区三区在线观看一| 国产成人综合网| 欧美人成免费网站| 中文字幕一区视频| 精东粉嫩av免费一区二区三区| av成人动漫在线观看| 精品国产一区二区亚洲人成毛片| 亚洲视频一二区| 国产美女主播视频一区| 在线亚洲人成电影网站色www| 日韩三级视频在线看| 一区二区三区在线视频播放| 韩国欧美国产1区| 欧美亚洲国产bt| 国产精品色婷婷久久58| 久久国产人妖系列| 欧美视频完全免费看| 国产精品国产三级国产普通话三级| 免费日韩伦理电影| 欧美图片一区二区三区| 日韩伦理免费电影| 国产精品996| 精品国产乱码久久久久久浪潮| 亚洲第一av色| 在线观看亚洲成人| 自拍偷在线精品自拍偷无码专区 | 国产精品久久久久久妇女6080| 青青青爽久久午夜综合久久午夜 | 激情文学综合网| 欧美疯狂性受xxxxx喷水图片| 国产精品久久久久影视| 国产麻豆精品在线| 精品国产三级电影在线观看| 男人的j进女人的j一区| 91精品国产综合久久国产大片| 亚洲制服丝袜av| 欧美亚洲愉拍一区二区| 亚洲黄色性网站| 在线观看不卡视频| 亚洲国产综合色| 欧美美女一区二区| 日韩国产精品久久久久久亚洲| 欧美日本国产视频| 奇米影视一区二区三区| 日韩女优制服丝袜电影| 日韩av不卡在线观看| 日韩视频免费观看高清完整版| 国产尤物一区二区在线| 日韩一区二区电影网| 麻豆91小视频| 国产人成亚洲第一网站在线播放| 国产福利不卡视频| 中文字幕一区二区三区av| 91免费版pro下载短视频| 亚洲蜜臀av乱码久久精品 | 日韩成人av影视| 精品国产乱码91久久久久久网站| 国产一区二区调教| 欧美国产日本视频| 欧美艳星brazzers| 麻豆成人免费电影| 日本一区二区成人| 欧美在线一区二区三区| 日本不卡在线视频| 久久精品一级爱片| 色综合一个色综合| 免费在线观看视频一区| 国产日韩精品一区二区三区在线| 色综合久久综合网| 国内精品免费**视频| 亚洲欧洲另类国产综合| 欧美丰满少妇xxxxx高潮对白 | 亚洲乱码中文字幕| 欧美精品在线一区二区三区| 国产一区亚洲一区| 一区二区三区国产| www成人在线观看| 欧美图区在线视频| 成人美女视频在线看| 亚洲成人精品影院| 欧美激情在线免费观看| 日本精品一区二区三区四区的功能| 免费在线一区观看| 一区二区三区久久久| 久久久久久99精品| 69av一区二区三区| 色综合久久88色综合天天6| 久久99国产精品免费网站| 一区二区三区在线视频播放| 久久女同精品一区二区| 欧美日韩一区二区三区四区| fc2成人免费人成在线观看播放| 日本aⅴ精品一区二区三区| 最新高清无码专区| 久久久国产综合精品女国产盗摄| 欧美日韩另类一区| 色狠狠综合天天综合综合| 国产成人亚洲综合a∨婷婷图片 | 日韩久久久久久| 91女厕偷拍女厕偷拍高清| 国内偷窥港台综合视频在线播放| 亚洲一区精品在线| 亚洲视频图片小说| 欧美国产成人精品| 久久精品一区蜜桃臀影院| 5566中文字幕一区二区电影| 欧美亚洲自拍偷拍| 欧美三级在线视频| 欧美午夜精品一区二区三区| 91丨porny丨蝌蚪视频| 成人免费毛片app| 粉嫩绯色av一区二区在线观看| 麻豆精品一区二区av白丝在线| 丝瓜av网站精品一区二区| 香蕉久久一区二区不卡无毒影院 | 亚洲综合一区二区精品导航| 中文字幕一区二区日韩精品绯色| 久久精品欧美日韩| 久久久噜噜噜久噜久久综合| 亚洲精品在线观看视频| ww亚洲ww在线观看国产| 国产色婷婷亚洲99精品小说| 久久婷婷国产综合精品青草| 26uuu精品一区二区| 久久久www成人免费毛片麻豆 | 欧美午夜免费电影| 欧美精品亚洲二区| 日韩欧美国产午夜精品| 久久这里只有精品视频网| 久久久久久久网| 国产精品家庭影院| 亚洲精品国产第一综合99久久| 一区二区三区电影在线播| 五月激情六月综合| 精品一区二区三区在线播放视频 | 国产精品国产三级国产有无不卡| 国产精品久久久久一区| 亚洲色图在线视频| 无码av免费一区二区三区试看| 亚洲一区自拍偷拍| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产曰批免费观看久久久| 粉嫩av一区二区三区在线播放 | 亚洲女同一区二区| 天堂一区二区在线免费观看| 国产乱人伦精品一区二区在线观看| 福利一区二区在线观看| 欧美午夜片在线看| 欧美精品一区二区久久婷婷| 亚洲欧洲日产国码二区| 日韩精品一二区| 99精品在线免费| 欧美一区二区高清| 中文字幕一区免费在线观看| 视频一区免费在线观看| 成人黄色av网站在线| 欧美精品少妇一区二区三区| 国产拍揄自揄精品视频麻豆| 亚洲一级不卡视频| 国产激情一区二区三区四区| 欧美日韩中文字幕一区| 国产精品福利一区二区| 欧洲精品中文字幕| 欧美精品一区二区在线播放| 一区二区三区小说|