D2DCanvas用sourceRectangle绘制位图

问题描述 投票:0回答:0

我在指定源矩形的同时绘制位图时遇到 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);

delphi canvas bitmap draw direct2d
© www.soinside.com 2019 - 2024. All rights reserved.