none
關於圖片轉成byte()後檔案大小的問題 RRS feed

  • 問題

  • dear all

    小弟寫了一個程式

    功能主要是把圖片轉成byte()或字串,傳送到後端

    我的問題是:

    原本一張圖片大小約30~50K

    轉成byte()後,就統一爆增到921654byte(900K)

    不然原本一張小小的圖,爆增到900K

    造成傳輸量變大,變慢

    不知道是否還有其他方法可以縮減檔案大小?

    2008年6月1日 下午 08:34

解答

  • HI,

     

    圖片轉成byte陣列, 大小應該和圖片大小完全一樣才對, 您可以這樣做:

     

    Dim fs As New FileStream("圖片檔案名稱", FileMode.Open, FileAccess.Read)

    Dim buf(fs.Length-1) As Byte

    fs.Read(buf, 0, fs.Length)

    fs.Close()

    fs.Dispose()

     

    執行後, buf的內容就是圖片的內容

     

    tihs

    2008年6月2日 上午 12:49
  • 看起來是 640x480 全彩的圖檔?你把你的檔案處理方式貼出來,我猜你原先是 gif / jpg ,轉成 bmp 後送出,才會這麼大。

    2008年6月2日 上午 11:59
    版主

所有回覆

  • HI,

     

    圖片轉成byte陣列, 大小應該和圖片大小完全一樣才對, 您可以這樣做:

     

    Dim fs As New FileStream("圖片檔案名稱", FileMode.Open, FileAccess.Read)

    Dim buf(fs.Length-1) As Byte

    fs.Read(buf, 0, fs.Length)

    fs.Close()

    fs.Dispose()

     

    執行後, buf的內容就是圖片的內容

     

    tihs

    2008年6月2日 上午 12:49
  • 看起來是 640x480 全彩的圖檔?你把你的檔案處理方式貼出來,我猜你原先是 gif / jpg ,轉成 bmp 後送出,才會這麼大。

    2008年6月2日 上午 11:59
    版主
  • 對耶,給璉璉 大大說對了,我是用08內建的程式碼片段來轉

    他預設是轉為BMP

    我改成jpg就跟原來的檔案大小一模一樣

    謝謝兩位!

    2008年6月2日 下午 01:48
  • 請問tihs大大:

    圖片的維度是一維還是二維的??謝謝!!

    2010年8月13日 上午 09:35