【问题标题】:make button glyph have a transparent background in delphi 7?使按钮字形在delphi 7中具有透明背景?
【发布时间】:2012-03-20 20:06:13
【问题描述】:

我有四个 TSpeedButton 对象,每个对象都有一个指定为按钮图像字形的 BMP 文件。无论出于何种原因,delphi 决定其中两个按钮图像应该具有透明背景,两个应该具有白色背景。我自己创建了位图,所以它们都以相同的颜色深度保存,并且使用纯白色(不是几乎白色的阴影)作为背景,并且在图像的所有四个角像素中都有背景颜色。

为什么有些字形图像会以透明背景显示,而有些则不会?使背景透明的标准是什么?如何使我的按钮图像全部具有透明背景,而不是其中一半具有透明背景?

【问题讨论】:

  • Delphi 的字形处理使用左下角的像素来确定透明色。与该颜色匹配的所有像素都应显示为透明。左下角的像素颜色是否与所有字形匹配,是否与您想要透明的区域匹配? (没有图像,很难判断问题出在哪里,但我想我会将其发布为潜在的调查。)
  • 我尝试了一个在四个角都有白色像素的简单图像,它在这里工作。

标签: delphi delphi-7


【解决方案1】:

Ken's comment

Delphi 的字形处理使用左下角的像素来确定透明色。与该颜色匹配的所有像素都应显示为透明。左下角的像素颜色是否与所有字形匹配,是否与您想要透明的区域匹配? (没有图片,很难判断问题出在哪里,但我想我会将其发布为潜在的调查。)

似乎持有正确答案(抱歉,不能接受评论作为正确答案!)。我使用的图像的左下角有一个阴影,所以那个角落几乎是白色的,而其他所有角落都是白色的。

【讨论】:

    【解决方案2】:

    我在使用 D5 时遇到了类似的问题,我对此进行了修复,因为我从未发现它发生的原因。

    将图像大小定义为比实际图像/字形高一排。这将强制从左上角开始写入图像,并在最后一行之前停止。这将强制使用非透明颜色,并且图像下方的额外行在视觉上不明显。

    【讨论】:

      猜你喜欢
      • 2014-12-19
      • 2020-04-08
      • 2016-08-02
      • 1970-01-01
      • 2021-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多