2013-10-04 114 views
2

如何將圖片大小調整爲100px,並將圖片保存爲圖片框中的PNG圖片?我可以做保存但輸出文件不會打開。我只有下面的代碼。調整圖片大小並將圖片保存爲PNG

picbox.Image.Save("example_file", System.Drawing.Imaging.ImageFormat.Png) 
+0

我應該提到,如果您的原始圖像/圖片框不是正方形,您可能需要縮放圖像而不是製作明確的100x100大拇指,以免失真。 – Plutonix

+0

如何縮放圖像?我還不熟悉.net中的圖形處理。 –

+0

它不是一個NET的東西,縮放只是算術。在繪製之前,你只需要做一些簡單的劃分。試試看,如果卡住了,請發表問題。 – Plutonix

回答

2

用於縮略圖的基礎是相當簡單:

  1. 創建所需大小的新位圖
  2. 畫原來它;通過繪製到一個更小的BMP,它是縮略圖

爲了保存,您可能需要添加「.png」到文件名。由於圖像是在picbox,把它弄出來少打字:

Dim bmp As Bitmap = CType(picbox.Image, Bitmap) 

' bmpt is the thumbnail 
Dim bmpt As New Bitmap(100, 100) 
Using g As Graphics = Graphics.FromImage(bmpt) 

    ' draw the original image to the smaller thumb 
    g.DrawImage(bmp, 0, 0, 
       bmpt.Width + 1, 
       bmpt.Height + 1) 
End Using 

bmpt.Save("example_file.PNG", System.Drawing.Imaging.ImageFormat.Png) 

注:

  1. Bitmap創建必須處理掉,當你用它做的。
    • 如果儲蓄是所有你需要做的,添加bmpt.Dispose()作爲最後一道防線。
    • 如果將上述內容用作返回縮略圖的方法,則獲取新縮略圖的代碼必須處理該縮略圖。
  2. 如果原始圖像已打開(如PictureBox中所示),則無法將其保存爲相同的文件名。稍微改變名稱,例如保存爲「myFoo_t」的「myFoo」。
  3. 上面的代碼假設一個正方形圖像。如果高度和寬度不相同,則還需要縮放縮略圖位圖以防止縮略圖失真。也就是說,計算另一個新的Bitmap的高度或寬度。
相關問題