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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.~pas

?? JPG圖片壓縮,根據(jù)設(shè)定的圖像質(zhì)量有損壓縮圖像
?? ~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 := '處理張數(shù):'+ IntToStr(Trunc(i+1));
        except
            Application.MessageBox(PChar(filelstJpg.Strings[i]+'處理出錯!'),'系統(tǒng)提示',mrOk);

        end;

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

  end;
end;

 //圖片處理函數(shù)

function CompressMainFun(stemp: string; filelst: TStringList): Boolean;
var
  bmp: TBitmap;
  jpg: TJpegImage;
  i: Integer;
begin
  Result := False;

  for i := 0 to filelst.Count - 1 do
  begin
      jpg.LoadFromFile(filelst.Strings[i]);
      bmp.height := jpg.Height;
      bmp.Width := jpg.Width;
      bmp.Canvas.StretchDraw(bmp.Canvas.ClipRect, jpg);
      jpg.Assign(bmp);
      jpg.CompressionQuality := StrToInt('20');
      jpg.Compress;
      sTemp := filelst.Strings[i] + '.jpg';
      jpg.SaveToFile(sTemp);
      DeleteFile(filelst.Strings[i]);
      CopyFile(PChar(sTemp), PChar(filelst.Strings[i]), True);
      DeleteFile(sTemp);
    Result := True;
  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.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区三区视频视频| 欧美午夜免费电影| 中文字幕不卡一区| 成人综合婷婷国产精品久久蜜臀 | 中文一区在线播放| 成人国产精品免费观看动漫| 亚洲欧美日韩国产手机在线| 日本韩国精品一区二区在线观看| 一个色在线综合| 51午夜精品国产| 国产一区二区三区最好精华液| 国产亚洲精久久久久久| av资源网一区| 亚洲超碰97人人做人人爱| 91精品国产91久久久久久一区二区| 久久精品99国产精品| 国产清纯白嫩初高生在线观看91 | 97精品久久久久中文字幕| 亚洲一卡二卡三卡四卡无卡久久| 91麻豆精品91久久久久久清纯| 国产专区欧美精品| 亚洲欧美日韩精品久久久久| 欧美日韩成人在线一区| 国产伦精品一区二区三区视频青涩 | 久久久久久久久久久99999| 成人aaaa免费全部观看| 色综合久久99| 日本大胆欧美人术艺术动态| 久久久影视传媒| 欧美视频在线一区二区三区 | 懂色av一区二区在线播放| 综合在线观看色| 欧美久久一二区| www.在线欧美| 久久疯狂做爰流白浆xx| 一区二区在线观看视频在线观看| 欧美不卡一二三| 在线影视一区二区三区| 国产高清精品网站| 日本欧美大码aⅴ在线播放| 亚洲欧洲日产国产综合网| 日韩一区二区三区四区| 91久久一区二区| 国产精品综合二区| 日韩二区在线观看| 亚洲国产三级在线| 亚洲欧美精品午睡沙发| 久久久美女艺术照精彩视频福利播放| 欧美三级三级三级| a4yy欧美一区二区三区| 国产精品一区二区果冻传媒| 日本韩国一区二区三区| 国产99久久久久| 久久 天天综合| 天堂va蜜桃一区二区三区 | 亚洲综合激情小说| 中文字幕av一区 二区| 精品久久久久久久久久久院品网| 欧美天堂一区二区三区| 色婷婷精品久久二区二区蜜臀av| 国产成人精品亚洲日本在线桃色| 久久99久久久欧美国产| 免费不卡在线观看| 天天影视涩香欲综合网| 亚洲一区二区三区爽爽爽爽爽| 中文字幕亚洲一区二区va在线| 久久久三级国产网站| wwww国产精品欧美| 337p日本欧洲亚洲大胆色噜噜| 欧美一区二区三区视频在线| 欧美日韩的一区二区| 欧美狂野另类xxxxoooo| 欧美午夜片在线看| 在线不卡免费欧美| 欧美一区二区三区视频| 日韩亚洲欧美成人一区| 日韩午夜激情av| 欧美成人福利视频| 欧美精品一区二区三区四区| 久久久久久久电影| 欧美激情在线看| 亚洲视频一二区| 亚洲电影在线播放| 日本vs亚洲vs韩国一区三区二区| 美美哒免费高清在线观看视频一区二区 | 国产精品久久夜| 1024精品合集| 亚洲精品欧美综合四区| 亚洲.国产.中文慕字在线| 香蕉影视欧美成人| 日韩av一区二区三区四区| 奇米色一区二区三区四区| 卡一卡二国产精品| 国产在线不卡一区| 成人高清视频在线| 色婷婷国产精品久久包臀| 欧美日韩一区二区欧美激情 | 成人av中文字幕| 日本国产一区二区| 欧美一级免费观看| 国产日韩v精品一区二区| 中文字幕一区二区在线播放| 一区二区国产盗摄色噜噜| 视频在线在亚洲| 国产福利91精品一区二区三区| 不卡av在线免费观看| 欧美日韩国产天堂| 2020日本不卡一区二区视频| 中文字幕一区二区三区蜜月| 香蕉影视欧美成人| 国产成人aaa| 欧美视频一区二区在线观看| 精品国产乱码久久久久久浪潮| 日本一区二区三区免费乱视频| 亚洲国产人成综合网站| 国产精品一区在线| 欧美在线观看视频一区二区| 日韩一二三区视频| 成人一区二区三区视频在线观看| 欧美性一二三区| 久久人人爽爽爽人久久久| 亚洲一区二区三区自拍| 国产馆精品极品| 欧美高清视频不卡网| 欧美极品少妇xxxxⅹ高跟鞋| 午夜不卡在线视频| 国产ts人妖一区二区| 欧美一区二区三区视频在线| 亚洲欧美偷拍卡通变态| 久久精品噜噜噜成人88aⅴ| 色狠狠一区二区三区香蕉| 精品国产自在久精品国产| 亚洲最色的网站| 国产宾馆实践打屁股91| 欧美片网站yy| 中文字幕亚洲成人| 国产成人综合亚洲91猫咪| 欧美精品久久天天躁| 亚洲啪啪综合av一区二区三区| 国产精品自拍av| 日韩一级二级三级精品视频| 亚洲成人激情av| 91福利国产精品| 国产精品久久久久久久久图文区 | 国产日产亚洲精品系列| 蜜桃视频免费观看一区| 9191成人精品久久| 亚洲一区二区三区三| 91视频www| 国产精品久久精品日日| 韩国av一区二区三区四区| 欧美一区二区国产| 日韩av一区二区在线影视| 欧美性xxxxxx少妇| 亚洲国产日韩在线一区模特| 色综合激情五月| 亚洲嫩草精品久久| 972aa.com艺术欧美| 国产精品九色蝌蚪自拍| 国产成人亚洲综合色影视| 久久影院午夜片一区| 狠狠网亚洲精品| 久久免费视频一区| 国产成人免费9x9x人网站视频| 久久精品一区二区三区四区| 激情五月婷婷综合网| 久久在线观看免费| 国产成人一区在线| 中文字幕制服丝袜成人av| 99re视频这里只有精品| 亚洲欧洲成人自拍| 欧美专区日韩专区| 亚洲成av人影院| 在线播放国产精品二区一二区四区| 五月婷婷色综合| 欧美一级高清大全免费观看| 日韩成人dvd| 久久久久久久久久看片| 成人动漫一区二区三区| 亚洲女人小视频在线观看| 欧美色精品天天在线观看视频| 日一区二区三区| 欧美大度的电影原声| 国产老肥熟一区二区三区| 国产精品日产欧美久久久久| 99精品视频在线播放观看| 一区二区欧美国产| 日韩欧美国产1| 国产福利精品导航| 亚洲自拍都市欧美小说| 日韩一区二区影院| 丰满少妇在线播放bd日韩电影| 国产精品卡一卡二卡三| 欧美日韩精品一区二区天天拍小说 | 日本视频一区二区| 久久精品亚洲精品国产欧美 | 久久夜色精品国产噜噜av| 成人亚洲精品久久久久软件| 亚洲最大成人综合| 日韩精品一区在线|