[.NET]PhotoShop做的PNG使用Graphics.DrawImage會變大?

[.NET]PhotoShop做的PNG使用Graphics.DrawImage會變大?

論壇上看到「DrawImage在绘制图片的时候,为什么会擅自改变图片的大小?」,

image

在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來試,並不會有放大的現象。

image

後來使用提問者的圖片,問題果然出現了! 把有問題的圖片使用小畫家另外後,就不會有問題了! 提問者說該圖片是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);

image

所以如果要指定大小的話,就直接使用DrawImage(Image image, int x, int y, int width, int height)吧!

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^