圖形的縮放

摘要:圖形的縮放

通常, 圖形的縮放是很常用的動作, 花樣也很多

程式不難寫,難的是在, 如何做才能令人滿意?

有些問題需要解決

1. 是否縮放到和目標區域一樣大(ex: 圖是扁的, 目標區域卻是寬的)

2. 小變大, 會有失真現象, 不能放的太大, 也需要適度的使用柔邊

3. 大變小,是否可能令關鍵特徵消失或是模糊化(ex: 機器人影像辨識領域, 圖形縮小反而可能害關鍵的資訊不見)

   如果會這樣就不該縮小, 而是對圖形"切塊"處理

以下先來看個簡單的程式

01         Dim 目標寬 As Integer = Me.PictureBox2.Width
02         Dim 目標高 As Integer = Me.PictureBox2.Height
03
04         Dim W As Integer = IMG.Width
05         Dim H As Integer = IMG.Height
06         Dim R As Double = W / H
07
08         W = 目標寬   ' 先依照寬度調整成一樣
09         H = W / R    ' 高度按比例縮放
10
11         If H > 目標高 Then  ' 但可能高度縮放後超過目標的高度
12             H = 目標高   ' 則 高度調整成和目標一樣
13             W = H * R   ' 寬度按比例縮放
14         End If
15
16         TImg = New Bitmap(IMG, W, H)  ' 重新產生一張圖型
17         Me.PictureBox2.Image = TImg ' 放進去

來源圖形在picturebox1裡面, 欲縮放到picturebox 2, 且長寬比還要維持一樣

IMG就是picturebox1的image

這樣就能按照原來的比例縮放出一張新的圖

但, 有些時候想要存檔呢?

需要指定格式以後再存

1 Dim 格式 As Imaging.ImageFormat
2 格式 = Imaging.ImageFormat.Gif   ' 這裡有很多格式可以選
3 TImg.Save(Me.SaveFileDialog1.FileName, 格式) ' 存到想要的地方

但萬一沒有預設的格式可以符合需求

這部份就必須自己寫存檔的部份了, 或是上網抓相對的元件來用

最常見大概就是存成PDF檔案, 這下篇文章再來專門探討吧

 

順著天賦做事,逆著個性做人生命, 就該浪費在美好的事物上