请高手指教。(100分)

  • 主题发起人 主题发起人 wenx
  • 开始时间 开始时间
W

wenx

Unregistered / Unconfirmed
GUEST, unregistred user!
请问怎样将两个已知的HBITMAP的图象合并成一个图象并得到新的HBITMAP,不是覆盖,是添加,不要用DELPHI的类TBITMAP,完全API实现。
 
自己查去吧
 
这叫什么话,要是能查到我还来这干什么
 
你是要先后并列拼凑在一起(面积变大),<br>还是要两幅图的对应点加起来?
 
拼凑在一起,面积变大。
 
CreateBitmapIndirect, CreateCompatibleBitmap, CreateDIBitmap, DeleteObject, GetBitmapBits, SelectObject, SetBitmapBits,CreateBitmap,BitBlt等等API函数。
 
举个例子好不好
 
var<br>&nbsp; bmp1,bmp2:Tbitmap;<br>begin<br>&nbsp; &nbsp;bmp1:=Tbitmap.Create;<br>&nbsp; &nbsp;bmp2:=Tbitmap.Create;<br>&nbsp; &nbsp;bmp1.LoadFromFile('1.bmp');<br>&nbsp; &nbsp;bmp2.LoadFromFile('2.bmp');<br><br>&nbsp; &nbsp;With Tbitmap.Create do<br>&nbsp; &nbsp;try<br>&nbsp; &nbsp; &nbsp; &nbsp;Width:=bmp1.Width + bmp2.Width;<br>&nbsp; &nbsp; &nbsp; &nbsp;Height:=Max(bmp1.Height,bmp2.Height);<br>&nbsp; &nbsp; &nbsp; &nbsp;Bitblt(Canvas.Handle,0,0,bmp1.Width,Height,bmp1.Canvas.Handle,0,0,SRCCOPY);<br>&nbsp; &nbsp; &nbsp; &nbsp;Bitblt(Canvas.Handle,bmp1.Width,0,bmp1.Width,Height,bmp2.Canvas.Handle,0,0,SRCCOPY);<br>&nbsp; &nbsp;finally<br>&nbsp; &nbsp; &nbsp; &nbsp;Free;<br>&nbsp; &nbsp;end;<br>&nbsp; &nbsp;bmp1.Free;<br>&nbsp; &nbsp;bmp2.Free;
 
请看清楚是用API完成,不用DELPHI的TBITMAP的类。
 
后退
顶部