【发布时间】:2020-06-24 21:07:03
【问题描述】:
我遇到了一个相当奇怪的问题,我使用 Golang 作为后端 RESTful API,我上传图片并使用 Go 调整它们的大小。我有一个我正在测试的 I-phone 应用程序,如果我使用我的真实设备上传图像,图像会横向保存在我的 s3 帐户中。由于某种原因,调整我的图像大小正在旋转它,但是如果我从我的 Xcode IDE 上传图像,那么图像会在没有旋转的情况下正确保存。我在想也许有些东西被剥夺了但是我不知道那会是什么,我的代码是这样的
func UploadStreamImage(w http.ResponseWriter, r *http.Request) {
r.ParseForm()
var buff bytes.Buffer
var result string
wg := sync.WaitGroup{}
print("Exoler-Streams")
wg.Add(1)
go func() {
defer wg.Done()
sess, _ := 's3 credentials'
svc := s3.New(sess)
file, handler, err := r.FormFile("file")
if err != nil {
fmt.Println("Error Uploading Image")
return
}
defer file.Close()
// resize image
img,err := imaging.Decode(file)
if err != nil {
print("Imaging Open error")
}
new_image := imaging.Resize(img, 300, 300, imaging.Lanczos)
var buf bytes.Buffer
err = imaging.Encode(&buf,new_image, imaging.JPEG)
if err != nil {
log.Println(err)
return
}
// end resize
r := bytes.NewReader(buf.Bytes())
read_file,err := ioutil.ReadAll(r)
if err != nil {
fmt.Println("Error Reading file")
}
// s3 specific code
}
我正在使用的库是这个https://github.com/disintegration/imaging,我只是想从我的真实设备上传图像时有些东西被剥离,因此它弄乱了旋转。我的真机和Xcode前端的代码都是一样的。
【问题讨论】:
-
是的,您正在剥离 exif 旋转标签。
标签: go