golang縮圖

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

今天研究了golang產生縮圖的相關知識,在網上找到一篇不錯的相關部落格,部落格地址:http://www.cnblogs.com/ghj1976/p/3445507.html。
有個注意事項這裡提醒一下:
官方文檔原話:
Image介面可以通過調用如NewRGBA和NewPaletted函數等獲得;也可以通過調用Decode函數解碼包含GIF、JPEG或PNG格式映像資料的輸入資料流獲得。解碼任何具體映像類型之前都必須註冊對應類型的解碼函數。註冊過程一般是作為包初始化的副作用,放在包的init函數裡。因此,要解碼JPG映像,只需在程式的main包裡嵌入如下代碼:
import _ “image/JPG”
_表示匯入包但不使用包中的變數/函數/類型,只是為了包初始化函數的副作用。

整理了一下代碼:

package mainimport (    "code.google.com/p/graphics-go/graphics"    "image"    _ "image/jpeg"   //必須import,否則會出現:unknown format,其餘類似    "image/png"    "log"    "os")//讀取檔案func LoadImage(path string) (img image.Image, err error) {    file, err := os.Open(path)    if err != nil {        log.Fatal("open file fail:", err)        return    }    defer file.Close()    img, _, err = image.Decode(file)   //解碼圖片    return}//儲存檔案func SaveImage(path string, img image.Image) (err error) {    imgfile, err := os.Create(path)    defer imgfile.Close()    err = png.Encode(imgfile, img)   //編碼圖片    if err != nil {        log.Fatal("Save fail:", err)    }    return}func main() {    src, err := LoadImage("1.jpg")    if err != nil {        log.Fatal("open fail:", err)    }    dst := image.NewRGBA(image.Rect(0, 0, 100, 100))    err = graphics.Scale(dst, src)   //縮小圖片    if err != nil {        log.Fatal(err)    }    SaveImage("thumbnailimg.png", dst)}

著作權聲明:轉載請註明部落格來源,謝謝。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.