2017-09-26 53 views
0

我在移動設備上的電話剛剛翻蓋人像圖像問題圖像人像圖像翻轉......如何防止手機

我使用角2 ...

下面是代碼:

<input type="file" name="file" accept="image/*" 
(change)="handleInputChange($event)" multiple> 

和功能:

handleInputChange(e) { 
     var files = e.dataTransfer ? e.dataTransfer.files : e.target.files; 
     var pattern = /image-*/; 

     let joined = this.toArray(this._sharedService.filesProduct).concat(this.toArray(files)); 
     this._sharedService.filesProduct = joined; 

     for (var i = 0; i < files.length; i++) { 
      var reader = new FileReader(); 

      this.loaded = false; 

      reader.onload = this._handleReaderLoaded.bind(this); 
      reader.readAsDataURL(files[i]); 
     } 

    } 

我認爲這是一些問題,HTML的一部分,不是S爲什麼它在手機上翻轉肖像圖像。

+0

你正在上傳JPG嗎?一些JPG將旋轉編碼到其元數據中。 – zero298

+0

我認爲這是JPG ...因爲它是通過手機拍攝的圖像... – Vladimir

+3

[Force image orientation angularjs]的可能重複(https://stackoverflow.com/questions/27204309/force-image-orientation-angularjs ) – zero298

回答

0

使用默認應用程序(從Angular's QuickStart),該應用程序是隨着Angular運行ng new my-app而構建的,以及此EXIF庫:exif-js。下面是一個如何從JPG中讀取EXIF數據的例子:

import { Component, Input } from '@angular/core'; 
import {EXIF} from 'exif-js'; 

@Component({ 
    selector: 'app-root', 
    templateUrl: './app.component.html', 
    styleUrls: ['./app.component.css'] 
}) 
export class AppComponent { 
    title = 'app'; 
    handleInputChange(e) { 
     const files = e.dataTransfer ? e.dataTransfer.files : e.target.files, 
       fr = new FileReader(); 
     fr.addEventListener('load',() => { 
      const data = fr.result; 
      const exif = EXIF.readFromBinaryFile(fr.result); 
      console.log(exif); 
     }); 
     fr.readAsArrayBuffer(files[0]); 
    } 
} 
+0

如何將exif-js添加到角度cli項目? – Vladimir

+0

@Vladimir轉到您的應用程序的根目錄並運行['npm i --save exif-js'](https://github.com/exif-js/exif-js#install)。 – zero298

+0

完成,但沒有工作... – Vladimir