【问题标题】:Can't get transparent color for TBitmap无法获得 TBitmap 的透明颜色
【发布时间】:2021-04-11 23:20:04
【问题描述】:

我有一个想要在 TPaintBox 上绘制的位图。问题是我必须先将其旋转到特定角度。我决定使用 TBitmap32。 我是这样做的:我首先创建一个 TBitmap,然后将其传输到 TBitmap32,进行转换并再次将 TBitmap32 移动到 TBitmap。我正在 TPaintBox 上绘制最后一个 TBitmap。问题是我无法获得透明度。

位图有一个我想要透明的红色背景。你会帮忙吗?我做错了什么?

carImage32 := TBitmap32.Create;

carImage32.Width := carImageTMP.Width;
carImage32.Height := carImageTMP.Height;

carImage32.Canvas.Draw(0, 0, carImageTMP); //assign TBitmap

carImage := TBitmap.Create;
carImage.Width := carImageTMP.Width;
carImage.Height := carImageTMP.Height;


RotateBitmap(carImage32,angle,false,clNone,True);

carImage.Transparent:=True;
carImage.TransparentColor:=clRed;

carImage.Assign(carImage32);

paintBox.Canvas.Draw(0,0,carImage);

【问题讨论】:

  • 不幸的是,同样的问题仍然存在。我在图像旋转方面遇到的问题最多。加载PNG,旋转它并绘制它会最方便,但我没有找到任何可以旋转png的东西。

标签: pascal lazarus freepascal


【解决方案1】:

我解决了我的问题。 我也应该将这部分代码用于 TBitmap32:

auto.carImage32.DrawMode:=dmTransparent;
auto.carImage32.OuterColor:=clRed32;

并且工作了:)

【讨论】:

    猜你喜欢
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    • 2012-05-03
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多