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”把它送人了。就是这样!谢谢