2017-01-20 2 views
0

Я столкнулся с довольно странной проблемой, я использую Golang в качестве backend restful API и загружаю изображения и изменяю их размер с помощью Go. У меня есть приложение для I-телефона, которое я тестирую, и если я загружу изображение с помощью своего реального устройства, изображение будет сохранено в моей учетной записи s3 сбоку. По какой-то причине изменение размера моего изображения приводит к его вращению, однако, если я загружу изображение из своей Xcode IDE, изображение будет сохранено правильно без вращения. Я имею в виду, что может быть что-то становится раздели, однако я понятия не имею, что это мог, мой код этоGolang некоторые изображения вращаются при загрузке изображения

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.

+3

Да, вы снимаете тег вращения exif. – JimB

ответ

1

Изображение не поворачивается в процессе, исходное изображение было показано в программном обеспечении для просмотра изображений в повернутом режиме в зависимости от тега ориентации изображения (val x00112) в части Exif файла. Когда вы разделяете часть Exif, как это делает пакет изображений, вы теряете эту информацию, и изображение отображается в стандартном формате ориентации камеры (пейзаж).

Смежные вопросы