• 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"
    )
  • 相关阅读:
    小节 +三元表达式
    continue
    break
    flag标签
    #region #endregion
    for 循环
    do while 有例句体会循环的真正原理
    while 循环
    前缀和与差分
    递归的循环实现
  • 原文地址:https://www.cnblogs.com/peteremperor/p/14689217.html
Copyright © 2020-2023  润新知