是否可以通过将相同大小的两个或多个不同bmp图片合并为一个图片?与在Windows XP MS Paint中完成的方法相同:将另一张图片粘贴到另一张图片中,并且辅助颜色是透明的。在一个图像中叠加图片
5
A
回答
9
您可以使用TBitmap
Transparent
属性这种效果。由于您的位图具有黑色边框,因此自动透明颜色(图像数据的第一个像素)不起作用,您还需要将TransparentColor
属性设置为'clWhite'。
var
bmp1, bmp2: TBitmap;
begin
bmp1 := TBitmap.Create;
bmp1.LoadFromFile('...\test1.bmp');
bmp2 := TBitmap.Create;
bmp2.LoadFromFile('...\test2.bmp');
// bmp2.PixelFormat := pf24bit; // with 32 bit images I need this, don't know why
bmp2.Transparent := True;
bmp2.TransparentColor := clWhite;
bmp1.Canvas.Draw(0, 0, bmp2); // draw bmp2 over bmp1
// this is how the merged image looks like
Canvas.Draw(0, 0, bmp1);
..
+0
完美的作品!只要注意使用此代码的人,请确保bmp1和bmp2的大小相同。如果bmp2小于bmp1,则bmp2将被放置在图像的左上角。 –
3
在第二位图的情况下,是黑色和白色,则可以在一个光栅操作与BitBlt(位块传送)使用它作为掩模,如下所示:
Windows.BitBlt(Bmp3.Canvas.Handle, 0, 0, Bmp3.Width, Bmp3.Height,
Bmp1.Canvas.Handle, 0, 0, SRCCOPY);
Windows.BitBlt(Bmp3.Canvas.Handle, 0, 0, Bmp3.Width, Bmp3.Height,
Bmp2.Canvas.Handle, 0, 0, SRCAND);
相关问题
- 1. 图像叠加帮助 - 它全部叠加在一个图像上!
- 2. 在图库视图中叠加图像?
- 3. 如何在css中将一个图像叠加到另一个图像上?
- 4. 使用javascript在另一个图像上叠加图像
- 5. 在另一个图像背景上叠加透明图像
- 6. 使用python在另一个图像上叠加图像
- 7. 叠加图像
- 8. 叠加图像
- 9. 叠加在背景图片
- 10. 在图库中叠加图像
- 11. 两个图像叠加?
- 12. JFreechart一个图像中的两个条形图,但未叠加
- 13. 将图像叠加到另一个div
- 14. 图像叠加一个网络视频
- 15. 在图像上设置叠加图像
- 16. 将图像叠加在图像上
- 17. 在另一个图像上重叠一个图像
- 18. 叠加多个图形在同一图
- 19. 图像与另一幅图像叠加在一起
- 20. 将图像叠加在配置文件图片FB上或将图像添加到图片
- 21. 添加叠加图像到CSS图像?
- 22. 按钮与图像不叠加另一个图像
- 23. 如何在GDI +中将一个位图图像叠加到另一个位图图像上?
- 24. WPF图像叠加
- 25. CSS图像叠加
- 26. Jquery图像叠加?
- 27. WPF中的图像叠加?
- 28. Slimbox - 在图像前叠加
- 29. 图像叠加在彼此
- 30. 在地图叠加层中添加图标或图像
当然可能。自己完成[很多](http://english.rejbrand.se/algosim/manual/pmproc/pmproc.html)。 –
@AndreasRejbrand:感谢那个链接,更具体的内容。伟大的参考。 –