golang image.DecodeConfig image: unknown format

golang获取上传图片的宽和高:

package main
import (
    "fmt"
    "image" 
    "io/ioutil"
    "os"
    "path/filepath"
)
const dir_to_scan string = "/home/da/to_merge"
func main() {
    files, _ := ioutil.ReadDir(dir_to_scan)
    for _, imgFile := range files {
        if reader, err := os.Open(filepath.Join(dir_to_scan, imgFile.Name())); err == nil {
            defer reader.Close()
            im, _, err := image.DecodeConfig(reader)
            if err != nil {
                fmt.Fprintf(os.Stderr, "%s: %v
", imgFile.Name(), err)
                continue
            }
            fmt.Printf("%s %d %d
", imgFile.Name(), im.Width, im.Height)
        } else {
            fmt.Println("Impossible to open the file:", err)
        }
    }
}

当使用image.Decode处理图片文件时,如报image: unknown format 错误。

执行以上代码会报
·image: unknown format·
这是因为忘记引入包import _ "image/jpeg",image包不知道怎么Decode图片,需要导入"image/jpeg"去解码jpg图片。
gif和png图片需要导入相应"image/gif",“image/png”。
如这三种图片类型都用到,需要都导入。
 

import (
    _"image/gif"
    _ "image/jpeg"
    _ "image/png"
)

 

posted @ 2021-04-22 13:45  Mr.peter  阅读(1492)  评论(0编辑  收藏  举报