You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Golang从URL加载图片遇‘image: unknown format’错误的解决

解决Golang中加载图片时"image: unknown format"错误

在Golang中通过URL加载图片并解析为image.Image格式时,遇到如下错误:

"image: unknown format"

原实现代码如下:

import "image"

url := "https://i.imgur.com/m1UIjW1.jpg"
func loadImageFromURL(URL string) (image.Image, error) {
    //Get the response bytes from the url
    response, err := http.Get(URL)
    if err != nil {
        return nil, err
    }
    defer response.Body.Close()

    if response.StatusCode != 200 {
        return nil, errors.New("received non 200 response code")
    }

    img, _, err := image.Decode(response.Body)
    if err != nil {
        return nil, err
    }

    return img, nil
}

问题原因

Golang标准库的image包仅定义了图片处理的基础接口,并未默认包含具体图片格式的解码器。要解析JPEG格式图片,必须显式导入image/jpeg包——即使不需要直接使用包内的任何标识符,也要通过空白标识符_导入,以此触发包的初始化逻辑,将JPEG解码器注册到image包中。

修复后的代码

import (
    "errors"
    "image"
    "net/http"
    _ "image/jpeg" // 注册JPEG格式解码器
)

func loadImageFromURL(URL string) (image.Image, error) {
    response, err := http.Get(URL)
    if err != nil {
        return nil, err
    }
    defer response.Body.Close()

    if response.StatusCode != 200 {
        return nil, errors.New("received non 200 response code")
    }

    img, _, err := image.Decode(response.Body)
    if err != nil {
        return nil, err
    }

    return img, nil
}

内容的提问来源于stack exchange,提问作者Arjen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 21:36:30