使用golang获取图像大小

埃达普

我是golang的新手,正在尝试获取目录中列出的所有图像的图像大小。这就是我所做的

package main

import (
    "fmt"
    "image"
    _ "image/jpeg"
    "io/ioutil"
    "os"
)

const dir_to_scan string = "/home/da/to_merge"

func main() {
    files, _ := ioutil.ReadDir(dir_to_scan)
    for _, filepath := range files {

        if reader, err := os.Open(filepath.Name()); err != nil {
            defer reader.Close()
            im, _, err := image.DecodeConfig(reader)
            if err != nil {
                fmt.Fprintf(os.Stderr, "%s: %v\n", filepath.Name(), err)
                continue
            }
            fmt.Printf("%s %d %d\n", filepath.Name(), im.Width, im.Height)
        } else {
            fmt.Println("Impossible to open the file")
        }
    }
}

我有一个错误image.DecodeConfig,说image: unknown format有人对正确的方法有想法吗?在这里的文档中,http : //golang.org/src/pkg/image/format.go? s= 2676 : 2730# L82说我应该传递io.Readeras参数,这就是我正在做的事情。

佛罗伦萨·贝勒

您的代码有两个问题。

第一个是您已经颠倒了测试err != nil,因此在出现错误的情况下尝试对图像进行解码应该是err == nil

正如jimt所说,第二个是您使用filepath.Name(),它仅包含中的文件名os.Open(),这是err始终设置的原因,因此始终输入if,并解码不存在的文件。

这是更正的代码:

package main

import (
    "fmt"
    "image"
    _ "image/jpeg"
    "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\n", imgFile.Name(), err)
                continue
            }
            fmt.Printf("%s %d %d\n", imgFile.Name(), im.Width, im.Height)
        } else {
            fmt.Println("Impossible to open the file:", err)
        }
    }
}

另外,别忘了添加其他导入,image/jpeg除非目录中有其他图像格式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用ajax上传后获取图像大小

来自分类Dev

使用 domcrawler (Goutte) 获取抓取图像的大小

来自分类Dev

如何使用蜡染获取SVG图像的图像大小(宽度/高度)

来自分类Dev

获取图像的大小

来自分类Dev

从URL获取图像大小

来自分类Dev

Haskell:获取图像的大小

来自分类Dev

woocommerce获取图像大小

来自分类Dev

使用javascript从文件夹获取图像大小

来自分类Dev

如何使用Javascript获取网页上图像的文件大小?

来自分类Dev

使用JS无法获取HTML中图像的真实大小

来自分类Dev

使用Laravel 4 Blade模板获取图像大小

来自分类Dev

使用JavaScript获取图像大小(kb),并将其卸载

来自分类Dev

使用socket.io获取图像文件的大小

来自分类Dev

Python-使用函数获取图像大小将返回错误

来自分类Dev

使用 JavaScript 或 PHP 从 4 像素位置获取图像大小

来自分类Dev

PHP:使用透明 bg 从 PNG 获取真实图像大小

来自分类Dev

如何从SDWebImage获取图像大小?

来自分类Dev

如何从URL获取图像大小

来自分类Dev

如何从画布获取图像大小?

来自分类Dev

如何从SDWebImage获取图像大小?

来自分类Dev

在Javascript中获取图像的大小

来自分类Dev

使用Firebase存储上传后如何获取调整后大小的downloadUrl(Web SDK +调整图像大小)

来自分类Dev

为什么使用 UIImageJPEGRepresentation 和通过 localpath 获取图像之间相同图像的数据大小/长度不同

来自分类Dev

PyGame-获取已加载图像的大小

来自分类Dev

NodeJS gm同步获取图像大小

来自分类Dev

获取图像的高度以设置模式窗口大小

来自分类Dev

调整大小后获取图像尺寸

来自分类Dev

从Google云存储获取调整大小的图像

来自分类Dev

TCPDF错误:无法获取图像的大小

Related 相关文章

热门标签

归档