尝试解码图像并写入文件。
这是我的代码:
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
答案 0 :(得分:0)
您显示的图像数据似乎是base-64编码。
Base-64解码" / 9j / 4AAQSkZJRg ==" (" =="将其填充到正确的长度)给出" ???? JFIF&#34 ;.重要的提示是" JFIF",它表明图像数据确实是base-64编码。
要获取图像,您需要对表示图像数据的字符串进行base-64解码。
答案 1 :(得分:0)
我遇到此问题是因为我使用的是指向图像页面的Imgur链接(例如https://imgur.com/VXM2I36),而不是图像的实际URL(例如https://i.imgur.com/VXM2I36.jpg)
部分问题是,如this answer中所述,Imgur上的“复制链接”按钮实际上并未提供直接链接至图像。