【发布时间】: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