如何操持Delphi7中TImage.canvas背景透明

wgzymzx 2016-10-27 02:57:48
我写了一个小程序,其中用到了4个完全重叠在一起的TImage控件,模拟4个图层(类似Photoshop的图层的概念),在不同的图层上画不同的内容,现在有两个问题:
1、如何设置TImage的canvas,才能保证其背景是透明的;
2、清除后如何保证其背景继续透明;
...全文
1720 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
标准的TImage也可以背景透明,它是使用的键控色技术,也就是指定一种颜色为key color,图像中凡是颜色为key的区域都是透明的。具体说就是TImage.Transparent、TBitmap.Transparent、TBitmap.TransparentColor、TBitmap.TransparentMode这几个属性。
heqxmail 2016-10-31
  • 打赏
  • 举报
回复
pngimage控件
lyhoo163 2016-10-31
  • 打赏
  • 举报
回复
Image几层中背景透明,只能使用Png图像,控件也是要支持Png的。例如:PngImage 下载:http://download.csdn.net/detail/zwd183335/5029010
  • 打赏
  • 举报
回复
#1的方法文不对题。 1. 楼主的要求是图层透明,不是切换图层显示的问题。 2. 切换图层显示可以简单的 xxx.BringToFront,不需要释放图像。
lyhoo163 2016-10-27
  • 打赏
  • 举报
回复
1、放一个Panel设置它的大小和位置; 2、在Panel中,放4个Image叠放在一起, Image4 <— 最上层 Image3 Image2 Image1 <— 最下层 3、设置Image属性: Image4.Transparent := True; Image4.Stretch := True; ...... Image1.Transparent := True; Image1.Stretch := True; 4、IMage清除图片 Image1.Picture.Assign(nil); 5、 Image4 Image3 Image2 Image1 分别读入图像,只能看到Image4的图像 6、显示不同层图像 (1) Image4.Picture.Assign(nil); 看到Image3的图像 (2) Image4.Picture.Assign(nil); Image3.Picture.Assign(nil); 看到Image2的图像 (3) Image4.Picture.Assign(nil); Image3.Picture.Assign(nil); Image2.Picture.Assign(nil); 看到Image1的图像 (4) Image4.Picture.Assign(nil); Image3.Picture.Assign(nil); Image2.Picture.Assign(nil); Image1.Picture.Assign(nil); 无图像 说的够清楚了,自己试试。

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧