加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在一个图像中叠加图片

发布时间:2020-12-15 04:13:44 所属栏目:大数据 来源:网络整理
导读:是否可以通过叠加在一起来将两个或更多相同大小的bmp图片合并为一个?与在 Windows XP MS Paint中完成的方式相同:将一张图片粘贴到另一张图片中,次要颜色为透明. 解决方法 您可以使用TBitmap的Transparent属性来实现该效果.由于您的位图具有黑色边框,因此自
是否可以通过叠加在一起来将两个或更多相同大小的bmp图片合并为一个?与在 Windows XP MS Paint中完成的方式相同:将一张图片粘贴到另一张图片中,次要颜色为透明.

解决方法

您可以使用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,bmp2);  // draw bmp2 over bmp1

  // this is how the merged image looks like
  Canvas.Draw(0,bmp1);
  ..

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读