[.NET]PhotoShop做的PNG使用Graphics.DrawImage會變大?
論壇上看到「DrawImage在绘制图片的时候,为什么会擅自改变图片的大小?」,
在Form的Paint事件中寫以下的程式,
Point pt = new Point(10,10);
e.Graphics.DrawImage(Properties.Resources.top, pt.X, pt.Y, new Rectangle(0, 0, 169,32), GraphicsUnit.Pixel);
於是用小畫家做了一個PNG來試,並不會有放大的現象。
後來使用提問者的圖片,問題果然出現了! 把有問題的圖片使用小畫家另外後,就不會有問題了! 提問者說該圖片是PhotoShop做的。
Rocky Yue說可能是圖片分辨率不同所導致的,所以可設定圖片的分辨率,如下
{
Point pt = new Point(10, 10);
Bitmap bit = new Bitmap(Properties.Resources.save1);
bit.SetResolution(96.0F, 96.0F);
e.Graphics.DrawImage(bit, pt.X, pt.Y, new Rectangle(0, 0, 169,32), GraphicsUnit.Pixel);
}
後來,看一下Graphics.DrawImage還可使用以下多載的Method
//以指定的大小,在指定的位置繪製指定的 System.Drawing.Image。
DrawImage(Image image, int x, int y, int width, int height);
試了一下,就不會變大了!
e.Graphics.DrawImage(Properties.Resources.xx , pt.X, pt.Y, 169, 32);
所以如果要指定大小的話,就直接使用DrawImage(Image image, int x, int y, int width, int height)吧!
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^