Heim  >  Artikel  >  Web-Frontend  >  So verwenden Sie JS, um die Vorschau eines IOS-Fotos um 90 Grad zu drehen

So verwenden Sie JS, um die Vorschau eines IOS-Fotos um 90 Grad zu drehen

php中世界最好的语言
php中世界最好的语言Original
2018-04-17 16:43:101585Durchsuche

Dieses Mal zeige ich Ihnen, wie Sie mit JS die Vorschau des aufgenommenen IOS-Fotos um 90 Grad drehen. Welche Vorsichtsmaßnahmen gibt es, um die Vorschau des aufgenommenen IOS-Fotos um 90 Grad zu drehen? Das Folgende ist ein praktischer Fall, schauen wir uns das an.

Um dieses Problem zu lösen, müssen Sie eine JS-Bibliothek eines Drittanbieters einführen: exif.js Download-Adresse: https://github.com/exif-js/exif-js Über exif.js können wir es bekommen die Metainformationen des Bildes, einschließlich der Richtung, in der das Foto aufgenommen wurde.

Das von exif.js angegebene Fotorichtungsattribut wird in IOS verwendet, um die Richtung des fotografierten Bildes über exif.js zu ermitteln. Der zurückgegebene Wert ist 6, was beim ganz linken F im obigen Bild der Fall ist . Hier liegt unser Fehler. Daher führen wir eine entsprechende Verarbeitung durch, indem wir den Richtungswert beurteilen. Wenn der Wert 6 ist, führen wir eine Rotationskorrektur am Bild durch.

Der spezifische Code lautet wie folgt:

//获取图片方向
function getPhotoOrientation(img) {
   var orient;
   EXIF.getData(img, function () {
      orient = EXIF.getTag(this, 'Orientation');
   });
   return orient;
}
Als nächstes ändern wir die Komprimierungsfunktion im vorherigen Artikel wie folgt:

//图片压缩
function compress(img, width, height, ratio) {
   var canvas, ctx, img64, orient;
    
   //获取图片方向
   orient = getPhotoOrientation(img);
   canvas = document.createElement('canvas');
   canvas.width = width;
   canvas.height = height;
   ctx = canvas.getContext("2d");
   //如果图片方向等于6 ,则旋转矫正,反之则不做处理
   if (orient == 6) {
      ctx.save();
      ctx.translate(width / 2, height / 2);
      ctx.rotate(90 * Math.PI / 180);
      ctx.drawImage(img, 0 - height / 2, 0 - width / 2, height, width);
      ctx.restore();
   } else {
      ctx.drawImage(img, 0, 0, width, height);
   }
   img64 = canvas.toDataURL("image/jpeg", ratio);
   return img64;
}
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:



Das obige ist der detaillierte Inhalt vonSo verwenden Sie JS, um die Vorschau eines IOS-Fotos um 90 Grad zu drehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn