delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
如何将一个BMP图片画在TPanel的中间(也就是让图片居中)用这个API(DrawDibDraw)画图片?谢谢! Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061026162537198.html
如何将一个BMP图片画在TPanel的中间(也就是让图片居中)用这个API(DrawDibDraw)画图片?谢谢!

var  
      vDrawDIB:   THandle;  
      vBitmapInfoHeader:   TBitmapInfoHeader;  
      vBits:   PChar;  
      vBitmap:   TBitmap;  
      vImageSize:   Longword;  
      vInfoHeaderSize:   Longword;  
  begin  
      vBitmap   :=   Image1.Picture.Bitmap;  
      GetDIBSizes(vBitmap.Handle,   vInfoHeaderSize,   vImageSize);  
      vDrawDIB   :=   DrawDibOpen;  
      GetMem(vBits,   vImageSize);  
      with   TControlCanvas.Create   do   try  
          GetDIB(vBitmap.Handle,   vBitmap.Palette,   vBitmapInfoHeader,   vBits^);  
   
          Control   :=   Panel1;  
          DrawDibDraw(vDrawDIB,   Handle,  
              (Panel1.Width   -   vBitmap.Width)   div   2,  
              (Panel1.Height   -   vBitmap.Height)   div   2,  
              vBitmap.Width,   vBitmap.Height,  
              @vBitmapInfoHeader,  
              vBits,   0,   0,   vBitmap.Width,   vBitmap.Height,   DDF_HALFTONE   or   DDF_JUSTDRAWIT)  
      finally  
          Free;  
          FreeMem(vBits,   vImageSize);  
          DrawDibClose(vDrawDIB);  
      end;  
  end;  
 

谢谢

posted on 2008-11-05 09:36 delphi2007 阅读(688) 评论(1)  编辑 收藏 引用

Feedback

# re: 如何将一个BMP图片画在TPanel的中间(也就是让图片居中)用这个API(DrawDibDraw)画图片?谢谢![未登录] 2010-05-25 17:56 Jon
1. Does avifil32 API support MJPG (Motion JPG) type AVI file? AVIStreamOpenFromFile failed when opening Sony Digital Camera AVI file. AVIStreamOpenFromFile only open CRAM codec type AVI file.

2. AVIStreamOpenFromFile or any other APIs can open Bytearray instead of FileName? I want to read AVI Bytearray from Access MDB table.  回复  更多评论
  

只有注册用户登录后才能发表评论。