摘要:.NET中將圖檔解析度轉小並另存檔案的程式碼
最近小喵的同事問到小喵一個問題
由於目前的數位相機的解析度都很高,所以圖片的解析度都很大,檔案也很大,那麼如果把圖檔上傳後,其他的人要瀏覽就會花費許多的時間。
如果使用者可以上傳前就先把圖檔轉小,然後再上傳,這樣上傳的時間會變少、其他的讀者瀏覽該圖檔時也不會等太久,但是問題來了,一般的使用者不會用影像處理軟體,使用者又遍佈全省各地,因此不可能一個一個教他們如何使用影像處理軟體來轉換圖的解析度
因應這樣的需求,小喵開始尋找.NET中如何處理影像解析度的相關程式語法,原來.NET中要處理這些動作是很簡單的,沒幾行語法就可以達成了。相關範例語法如下:
首先記得要先Imports 相關的NameSpace:
Imports System.Drawing
Imports System.Drawing.Imaging
Dim g As Image = Image.FromFile("D:\Backup\T1.jpg") '讀取原始圖檔
Dim ThisFormat As ImageFormat = g.RawFormat '取得圖檔格式
Dim FixWidth As Integer = 640 '設定修改後的寬度
Dim FixHeight As Integer = (FixWidth / g.Width) * g.Height '計算等比例縮小後的高度
Dim ImgOutput As New Bitmap(g, FixWidth, FixHeight) '宣告新的圖,並指定高度
ImgOutput.Save("D:\Backup\T1.jpg", ThisFormat) '存成指定的格式
'最後將物件釋放
g.Dispose()
ImgOutput.Dispose()
Dim ThisFormat As ImageFormat = g.RawFormat '取得圖檔格式
Dim FixWidth As Integer = 640 '設定修改後的寬度
Dim FixHeight As Integer = (FixWidth / g.Width) * g.Height '計算等比例縮小後的高度
Dim ImgOutput As New Bitmap(g, FixWidth, FixHeight) '宣告新的圖,並指定高度
ImgOutput.Save("D:\Backup\T1.jpg", ThisFormat) '存成指定的格式
'最後將物件釋放
g.Dispose()
ImgOutput.Dispose()
有了以上的語法後,接著就是如何的應用了,小喵有兩個想法提供給小喵同事
一是寫個Client端的程式,讓使用者使用,先把圖轉小後,再上傳。
二是讓使用者把原圖上傳後,在ASP.NET中將圖檔轉小後蓋掉原來的檔案。
以下是簽名:
- 歡迎轉貼本站的文章,不過請在貼文主旨上加上【轉貼】,並在文章中附上本篇的超連結與站名【topcat姍舞之間的極度凝聚】,感恩大家的配合。
- 小喵大部分的文章會以小喵熟悉的語言VB.NET撰寫,如果您需要C#的Code,也許您可以試著用線上的工具進行轉換,這裡提供幾個參考
Microsoft MVP Visual Studio and Development Technologies (2005~2019/6) | topcat Blog:http://www.dotblogs.com.tw/topcat |