【问题标题】:Delphi: Alphablending two TimagesDelphi:Alpha 混合两个图像
【发布时间】:2017-05-30 04:54:14
【问题描述】:

我有一个表格两个 TImage。一个是固定的(BackgroundImage - Car),另一个是可移动的并且总是在前面(FrontImage - Tree)。

当两个图像重叠时,FrontImage 应该是透明的。我尝试了 Remy Lebeau 关于问题的答案的确切代码:

How to make alpha transparent TImage in Delphi?

但是过度混合的图像看起来很奇怪。它看起来不像预期的那样。

感谢您的帮助

【问题讨论】:

  • Remy Lebeau 没有在该答案中编写任何代码。你的意思是用笨蛋回答吗?
  • 请描述一下,你到底做了什么?在链接中,图像起初是完全不透明的,然后变得均匀透明。在你的情况下,我假设你在透明背景上有不透明的树,想要那样吗?
  • 对不起,你是对的:这是正确的链接:stackoverflow.com/questions/21638341/… 这里我使用的函数叫做:procedure SetBMPAlpha(BMP: TBitmap; Alpha: Byte);我提到我在滚动框中有两个 TImage。为每个 TImage 组件分配一个位图。 (汽车->背景->不透明,树->前->透明)用户现在可以通过鼠标移动移动一个图像->当然,图像可以并排放置或彼此重叠放置。因此用户也可以选择Alpha的值并改变透明度。

标签: delphi transparency alphablending blending alpha-transparency


【解决方案1】:

可以使用 2 个 png 图像。第一:

秒:

(我制作了printscreen,然后用'magic wand'删除了背景并保存为PNG)

只需将它们插入到 TImage 组件的对象检查器中,它们就会正常工作(至少在 XE2 和更高版本中)。没有添加透明度的代码,它已经存在了。

【讨论】:

  • 我正在寻找可以处理位图的解决方案。
  • @Jacks 你到底想达到什么目的?是不是所有前面的图片都是半透明的,就像你链接到的那样(所以初始图像是完全不透明的,但是你想将所有像素的 alpha 值设置为 127)或者你的图像开始时有 alpha 通道,所以它们'就像精灵,像非矩形图像,所以汽车可能站在树后面,但树本身是不透明的?
  • 嗨,一开始每个图像都是不透明的。然后,前面的图像(树)应该在后面的图像(汽车)的顶部移动,当它移动时,我应该能够改变前面的图像(树)的透明度。我希望现在很清楚.. :-P
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-01
  • 2014-05-18
  • 1970-01-01
  • 2015-02-03
  • 1970-01-01
  • 2011-04-08
相关资源
最近更新 更多