调整图像大小的其他方法比Graphics.DrawImage

时间:2010-02-20 22:37:55

标签: .net gdi+ drawing

不要问我为什么但是我不能使用这种方法,因为我需要创建2个图像对象才能使它工作。

我希望能够调整单个Image对象的大小,而无需创建另一个Image对象。这可能吗?如何?

4 个答案:

答案 0 :(得分:2)

如果您的原因是内存问题或类似的问题(非常大的图像)。您可以尝试打开它并使用Aforge调整其大小。

答案 1 :(得分:1)

您可以使用Matrix调整图片大小。您必须创建一个矩阵并对其进行缩放并将其设置为Graphics对象。

Matrix mx = new Matrix();
mx.Scale(2.0f,2.0f);
graphics.Transform=mx;
graphics.DrawImage(...);

答案 2 :(得分:0)

您可以将Image放入ViewBox

请参阅http://www.wpftutorial.net/ViewBox.html

答案 3 :(得分:0)

不,这是不可能的。 Image对象的高度和宽度在构造Image对象时是固定的。此限制存在于基础GDI + API中。

如果您不需要修改Image,可能每次渲染时都可以对其进行缩放。例如,在Control.Paint事件中,您可以使用Graphics.DrawImage将其直接呈现到PaintEventArgs.Graphics上下文中。这将允许您以不同的尺寸绘制图像,而无需创建其他Image个对象。