【问题标题】:Does the delphi TBitmap support an alpha channeldelphi TBitmap 是否支持 alpha 通道
【发布时间】:2023-03-16 02:36:01
【问题描述】:

我听到人们说不是。

但是,我创建了一个 TBitmap 并通过

清除了整个区域
For I := 1 to bmp.Width do
  For J := 0 to bmp.Height do
    bmp.canvas.Pixels[I,J]:= $00000000;

然后我在位图上绘制抗锯齿文本并将其保存到文件中。在 gimp 中打开它会显示透明度信息。

是否有人对此有明确的答案,如果它确实有效,那么有关它如何工作的更多信息?我尝试过使用最后一个字节,但在 gimp 中打开它时没有得到预期的结果。

【问题讨论】:

  • 使用Pixels[] 可能会很慢。改为使用 ScanLine 进行调查 - 您需要知道像素格式才能知道每个像素有多少字节,但如果您使用的是 pf32bit,这很容易(4 个字节。)请参阅 efg2.com/Lab/ImageProcessing/Scanline.htm

标签: delphi alpha bmp


【解决方案1】:

可以,但你必须设置

bmp.PixelFormat := pf32bit;

【讨论】:

  • +1 Great :) 支持哪个 VCL 版本?
  • 我不是 100% 确定,但我认为这已经在 D7 中了。也可能更早。
【解决方案2】:

Delphi TBitmap 只是 Windows BITMAP 对象的包装器。所以,是的,它确实支持 Alpha 通道,但显然您必须适当地设置 PixelFormat 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多