我正在尝试在asp.net Visual Studio V2008中调整图像大小,c#
using (Graphics newgraphics = Graphics.FromImage(myBackgroundImage))
{
newgraphics.Clear(Color.FromArgb(-1));
if ((float)oldbmp.Width / (float)Width == (float)oldbmp.Height / (float)Height)
{
newgraphics.DrawImage(oldbmp, 0, 0, Width, Height);
}
}
我输入了上面的代码,但是我在构建时遇到以下错误。
Graphic.DrawImage重载。它期待,int,int,Rectangle,graphicsunit
有人有什么建议吗?
非常感谢 雷切
答案 0 :(得分:0)
根据您提供的错误消息,您似乎没有为DrawImage方法提供正确的参数。
你能确认'oldbmp'属于什么类型吗?它应该是一个'Image'类型,以满足其中一个过载要求。
以下是DrawImage方法的所有重载。
http://msdn.microsoft.com/en-us/library/system.drawing.graphics.drawimage(v=vs.110).aspx
根据您的代码,下面的重载应该可以胜任。
http://msdn.microsoft.com/en-us/library/2ab36azw(v=vs.110).aspx
您是否尝试过使用0.0F代替0?
答案 1 :(得分:0)
我已经解决了这个问题
在InitializeComponent中,我添加了以下两行
'this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);' 'this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;'这就解释了为什么我这样做了 CLick Here
我将图像附加到表单皮肤上 - 因为它正在绘制油漆覆盖方法 - 上面的代码不会重新调整绘制覆盖方法中绘制的图像的大小
感谢jundev为您的病人。