2017-09-24 72 views
0

我有问题显示转换后的图像。 虽然下面的代码正常工作:图像转换失败

Image img = Resources.Resources.router; 
PointF imageLocation = new PointF(10, 10); 
g.DrawImage(img, imageLocation); 

修订上述与变换抛出异常“参数是无效的”在g.DrawImage():

Image img = Resources.Resources.router; 
PointF imageLocation = new PointF(10, 10); 
img.RotateFlip(RotateFlipType.RotateNoneFlipXY); 
g.DrawImage(img, imageLocation); 

我理解这种类型的错误是相关到一些处置的对象,但我无法弄清楚什么是在这里和什么时间处置的。该图片似乎是非常有效的调用g.DrawImage()之前: enter image description here

但随后发生如下: enter image description here

那我在这里失踪,有人可以请帮助?

回答

0

我终于找到了一个解决方案,但仍不能完全确信背后的原因:

using (Image img = new Bitmap(Resources.Resources.router)) 
{ 
    PointF imageLocation = new PointF(10, 10); 
    img.RotateFlip(RotateFlipType.RotateNoneFlipXY); 
    g.DrawImage(img, imageLocation); 
} 
+1

在你的屏幕捕捉您的IMG是内{定义}所以它是局部的,将被随机倾倒在关闭括号。我只能认为有些东西导致它在交给GDI之前就被处置掉了。使用示例可能表现得更好,因为使用定义了一个块,最终将尝试显式地处理img,因此该库在此实例中可能表现得更好。 –

+0

谢谢您解释 –

+0

不客气;这只是一个理论! –