我在指定源矩形的同时绘制位图时遇到 Direct2D 问题,希望有人能指出我如何修复它。 我正在关注这里的示例:https://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_the_Direct2D_Canvas
所以基本上我有一个自定义的 Direct2d 加速控件来在其上绘制 256 x 256 位图。 当我刚打电话
AcceleratedPaintPanel1.RenderTarget.DrawBitmap(FBitmapToPaint);
结果正确,绘制的图像是256 x 256像素
但是当我指定源矩形时很奇怪,第二个图像太大了!我将源矩形设置为与图像相同的大小 (256 x 256),但看不出有任何理由将其设置得过大。这只是一张图片的简单示例,但我需要做的是从源图像中获取不同的部分并分别绘制它们,但是所有使用源矩形的方法都在绘制过大的图像。 谢谢。
var
D2D1RectF:TD2D1RectF;
begin
// Image 1 - properly sized image
AcceleratedPaintPanel1.RenderTarget.DrawBitmap(FBitmapToPaint);
D2D1RectF.left:= 256;
D2D1RectF.top:= 0;
D2D1RectF.right:= 512;
D2D1RectF.bottom:= 256;
// Image 2 - oversized
AcceleratedPaintPanel1.RenderTarget.DrawBitmap(FBitmapToPaint, @D2D1RectF);