私は数週間、画像のアップロード機能に取り組んでいます。私はGolangをバックエンド言語として使用しています。IOSデバイスからamazon s3に送られたイメージをアップロードするのが目的です。画像をアップロードする過程で、私はまた、それらのサイズを変更し、これは主にデコード方法は、時々私は私が使用しているライブラリは、この素晴らしい1 https://github.com/disintegration/imagingとあるGolangどのように回転させずに外部画像をアップロードできますか
file, handler, err := r.FormFile("file")
if err != nil {
fmt.Println("Error Uploading Image")
return
}
defer file.Close()
// the code below sometimes rotates an image
img,err := imaging.Decode(file)
if err != nil {
print("Imaging Open error")
}
new_image := imaging.Resize(img,400,400, imaging.Lanczos)
を望んでいない画像を回転させる問題を引き起こしています彼らが示した例は一例で結構ですが、私のイメージはローカルに保存されていない、彼らはIOSデバイスから来ていることを、この
src, err := imaging.Open("testdata/lena_512.png")
if err != nil {
log.Fatalf("Open failed: %v", err)
}
src = imaging.Resize(src, 256, 0, imaging.Lanczos)
だった私は、この問題を解決するために行うことができます何かありますか?私のイメージの中には、いくつかの画像は、このように回転させると、それは私が画像を回転ないしかし、いくつかの他の画像でそれを修正することができ、それを
をやってデコードする方法である。この
のように保存されていますデコードによって回転され、最後にRotate270メソッドによって回転されます。
img,err := imaging.Decode(file)
if err != nil {
print("Imaging Open error")
}
// rotate the image
img = imaging.Rotate270(img)
new_image := imaging.Resize(img,400,400, imaging.Lanczos)
これは、画像を保存して回転させる方法です。どこかで、デコードを使わずに、あるいは単にデコードの問題を修正しなくても、外部の画像をアップロードできますか? Imaging.Resize最初のパラメータはEXIFタグで回転残念ながら、外出先STDLIBイメージパッケージは、(マークされている画像を処理しない
func myImages(w http.ResponseWriter, r *http.Request) {
r.ParseForm()
var buff bytes.Buffer
file, handler, err := r.FormFile("file")
if err != nil {
fmt.Println("Error Uploading Image")
return
}
defer file.Close()
img,err := imaging.Decode(file)
if err != nil {
print("Imaging Open error")
}
new_image := imaging.Resize(img,400,400, imaging.Lanczos)
var buf bytes.Buffer
err = imaging.Encode(&buf,new_image, imaging.JPEG)
if err != nil {
log.Println(err)
return
}
}
デコードは、画像を回転していない、イメージが元々により、出口の向きタグに表示時に回転させました。イメージを回転する方法を決定するには、そのタグを読み取る必要があります。 – JimB
写真からExifデータを確認する必要があります。私はあなたの写真を回転させているイメージングではないと思います。 – apxp