曾几何时,在阅读这个问题时,我想知道如何在任何程度上旋转位图,而不是自己摆弄所有的位.最近,其他人也遇到了明显的困难.
已经有很多问题以90°的间隔处理旋转,大多数都不是这个问题,但我想以一个真正的角度旋转.优选地,可以由于旋转而调整图像尺寸,并且为将要添加到图像表面的部分设置定制(透明)背景颜色.然后我假设例程的签名看起来像:
procedure RotateBitmap(Bmp: TBitmap; Angle: Single; AdjustSize: Boolean;
BackColor: TColor);
Run Code Online (Sandbox Code Playgroud)
这些答案提到了构建此例程的以下候选:SetWorldTransform,PlgBlt,GDI +,但我希望看到(高效)实现.