gpt4 book ai didi

c# - 将操作图形绘制到另一个图形中

转载 作者:行者123 更新时间:2023-11-30 15:40:01 25 4
gpt4 key购买 nike

我想将一个被操纵的图形绘制到另一个图形中:

// I have two graphics:
var gHead = Graphics.FromImage(h);
var gBackground = Graphics.FromImage(b);

// Transform the first one
var matrix = new Matrix();
matrix.Rotate(30);
gHead.Transform = matrix;

// Write the first in the second
gBackground.DrawImage(h, 200, 0, 170, 170);

输出是带有头部图像的背景图像 - 但头部图像未旋转。

我错过了什么?

最佳答案

图形对象的 Transform 属性就是一个属性。它不执行任何操作,只是告诉图形对象应该如何绘制图像。

所以你要做的是在你正在绘制的图形对象上设置 Transform 属性 - 在这种情况下,它应该应用于你的 gBackground 对象,像这样...

gBackground.Transform = matrix;

然后当您回过头来调用 gBackground 对象上的 DrawImage 方法时,它会考虑您拥有的 Transform 属性应用。

请记住,此属性更改将在所有后续 DrawImage 调用中持续存在,因此您可能需要在进行任何更多绘制之前重置它或更改值(如果您甚至需要)


为了更加清楚,您的最终代码应如下所示...

// Just need one graphics
var gBackground = Graphics.FromImage(b);

// Apply transform to object to draw on
var matrix = new Matrix();
matrix.Rotate(30);
gBackground.Transform = matrix;

// Write the first in the second
gBackground.DrawImage(h, 200, 0, 170, 170);

关于c# - 将操作图形绘制到另一个图形中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9698444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com