打印本文 打印本文 关闭窗口 关闭窗口
用Delphi实现缩略图查看
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3596  更新时间:2009/4/23 18:38:54  文章录入:mintao  责任编辑:mintao
;
  try
    for i:=0 to ImageFileList.GetFileCount-1 do
    begin

      ImageFileList.SetIndex(i);
      ImageFileName:=ImageFileList.GetCurFullFileName;
      if IsJpgFile(ImageFileName) then
        jpgtobmp(ImageFileList.GetCurFullFileName,ThumbJpg,OriginalBmp)
      else
        OriginalBmp.LoadFromFile(ImageFileList.GetCurFullFileName);

      if OriginalBmp.Height>=OriginalBmp.Width then
      begin

        ThumbBmpWidth:=64*OriginalBmp.Width div OriginalBmp.Height;
        ThumbBmpLeft:=(64-ThumbBmpWidth ) div 2;

        ThumbBmp.Canvas.Brush.Color :=clBtnFace;
        ThumbBmp.Canvas.FillRect(ThumbBmp.Canvas.ClipRect);

        DrawPanel(ThumbBmp.Canvas,0,0,79,79,RaisedPanel);
        DrawPanel(ThumbBmp.Canvas,7+ThumbBmpLeft,7,ThumbBmpWidth+1,64,LoweredPanel);
        ThumbBmp.Canvas.StretchDraw(Rect(8+ThumbBmpLeft,8,8+ThumbBmpLeft+ThumbBmpWidth,71),OriginalBmp);

        imagelist1.Add(ThumbBmp,nil);
      end
      else
      begin
        ThumbBmpHeight:=64*OriginalBmp.Height div OriginalBmp.Width;
        ThumbBmpTop:=(64-ThumbBmpHeight ) div 2;

        ThumbBmp.Canvas.Brush.Color :=clBtnFace;
        ThumbBmp.Canvas.FillRect(ThumbBmp.Canvas.ClipRect);

        DrawPanel(ThumbBmp.Canvas,0,0,79,79,RaisedPanel);
        DrawPanel(ThumbBmp.Canvas,7,7+ThumbBmpTop,64,ThumbBmpHeight+1,LoweredPanel);
        ThumbBmp.Canvas.StretchDraw(Rect(8,8+ThumbBmpTop,71,8+ThumbBmpTop+ThumbBmpHeight),OriginalBmp);
        imagelist1.Add(ThumbBmp,nil);
      end;

      with ListView1.Items.Add  do
      begin
        ImageIndex:=imagelist1.Count-1;
        caption:=ImageFileList.GetCurFileName;
      end;
      ProgressBar1.Position:=i;
      application.ProcessMessages;
    end;
  finally
    listview1.Items.EndUpdate;
    ProgressBar1.Visible:=false;
  end;
  screen.Cursor:= crDefault;
  IsRefreshImageFinished:=true;

end;

7.过程DrawPanel的代码如下:

//在canvas上画一个Panel
procedure DrawPanel(ca

上一页  [1] [2] [3] [4] [5] [6]  下一页

打印本文 打印本文 关闭窗口 关闭窗口