; 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] 下一页 没有相关教程
|