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" )