如何在golang中从url获取图像分辨率

时间:2014-08-12 18:35:07

标签: go

如何从golang中的URL获取图像的分辨率。

以下是我正在尝试的代码。

resp, err := http.Get("http://i.imgur.com/Peq1U1u.jpg")
if err != nil {
    // handle error
}
defer resp.Body.Close()

m, _, err := image.Decode(resp.Body)
if err != nil {
    // handle error
}
g := m.Bounds()
fmt.Printf(g.String())

你能告诉我如何在上述情况下获得解决方案

2 个答案:

答案 0 :(得分:9)

你快到了。您的g变量属于image.Rectangle类型,其中包含Dx()Dy()方法,分别给出宽度和高度。我们可以使用它们来计算分辨率。

package main

import (
    "fmt"
    "image"
    _ "image/gif"
    _ "image/jpeg"
    _ "image/png"
    "log"
    "net/http"
)

func main() {
    resp, err := http.Get("http://i.imgur.com/Peq1U1u.jpg")
    if err != nil {
        log.Fatal(err)
    }
    defer resp.Body.Close()

    m, _, err := image.Decode(resp.Body)
    if err != nil {
        log.Fatal(err)
    }
    g := m.Bounds()

    // Get height and width
    height := g.Dy()
    width := g.Dx()

    // The resolution is height x width
    resolution := height * width

    // Print results
    fmt.Println(resolution, "pixels")
}

答案 1 :(得分:1)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" id="txtInput" />解码整个图像,改用image.Decode

image.DecodeConfig