Image 无效的JPEG格式:缺少SOI标记

Image 无效的JPEG格式:缺少SOI标记,image,go,jpeg,Image,Go,Jpeg,试图解码图像并写入文件 这是我的代码: package main import ( "bytes" "fmt" "github.com/reteps/gopowerschool" "image/jpeg" ) func main() { client := gopowerschool.Client("https://example.com") session, userID, err := cli

试图解码图像并写入文件

这是我的代码:

package main

import (
        "bytes"
        "fmt"
        "github.com/reteps/gopowerschool"
        "image/jpeg"
)

func main() {
        client := gopowerschool.Client("https://example.com")
        session, userID, err := client.CreateUserSessionAndStudent("username", "password")
        if err != nil {
                panic(err)
        }   
        response, err := client.GetStudentPhoto(&gopowerschool.GetStudentPhoto{UserSessionVO: session, StudentID: userID})
        if err != nil {
                panic(err)
        }   
        fmt.Println(string(response.Return_))
        image, err := jpeg.Decode(bytes.NewReader(response.Return_))
        if err != nil {
                panic(err)
        }   
        fmt.Println(image)

}
图像是:

/9j/4AAQSkZJRg....VNpSP8f6VmE4oopks//Z
当我试图解码图像的[]字节时,它给了我一个错误

panic: invalid JPEG format: missing SOI marker

显示的图像数据似乎是base-64编码的

Base-64解码“/9j/4AAQSkZJRg=”(“==”将其填充到正确的长度)给出“??”JFIF。重要的提示是“JFIF”,它表明图像数据确实是base-64编码的


要获取图像,您需要对表示图像数据的字符串进行base-64解码。

我遇到了这个问题,因为我使用了指向图像页面的Imgur链接(例如),而不是图像的实际URL(如)


问题的一部分在于,Imgur上的“复制链接”按钮实际上没有提供到图像的直接链接,如中所述。

我不熟悉Go,因此它是否需要对base-64编码图像进行base-64解码?确实需要。在
xml\u parser.go
下,它返回一个
[]字节
@AndrewMorton您可能是对的!你怎么知道它是base64编码的?@user7903682我解码了“/9j/4AAQSkZJRg==”得到了“?”????“JFIF”和“JFIF”把它送人了。就是这样!谢谢