Heim  >  Artikel  >  Web-Frontend  >  Js+Canvas führt eine Bildkomprimierung durch

Js+Canvas führt eine Bildkomprimierung durch

php中世界最好的语言
php中世界最好的语言Original
2018-04-17 11:33:291423Durchsuche

Dieses Mal bringe ich Ihnen Js+Canvas, um die Bildkomprimierung durchzuführen. Was sind die Vorsichtsmaßnahmen für die Bildkomprimierung mit Js+Canvas? Das Folgende ist ein praktischer Fall . Stehen Sie auf und schauen Sie nach.

/* 
 * 图片压缩
 * img    原始图片
 * width   压缩后的宽度
 * height  压缩后的高度
 * ratio   压缩比率 
 */
 function compress(img, width, height, ratio) {        
   var canvas, ctx, img64;
   canvas = document.createElement('canvas');        
   canvas.width = width;
   canvas.height = height;    
   ctx = canvas.getContext("2d");            
   img64 = canvas.toDataURL("image/jpeg", ratio);    
   return img64;
 }

Das Obige ist eine Bildkomprimierungsfunktion, die Bilddaten im Base64-Format zurückgibt. Je größer der Wert des Komprimierungsverhältnisses (zwischen 0 und 1) ist, desto höher ist die Bildqualität. Es wird empfohlen, das Bild nicht in das PNG-Format zu konvertieren, da die Base64-Datei des Bildes viel länger ist als die von JPEG. Hier ist der eigentliche Aufruf:

var image = new Image();
image.src = "/img/test.jpg";
      
image.onload = function(){
  var img64 = compress(image, 500, 400, 0.7);
  document.getElementById("test").src = img64;
}

Hinweis: Der Aufruf der Komprimierungsmethode und die Bild-Quellenzuweisung müssen in der Onload-Methode des Bildes platziert werden. Denn erst nachdem das Bild geladen ist, kann es komprimiert und zur Zuweisung in Base64 konvertiert werden. Wenn es außerhalb der Onload-Methode platziert wird, ist der Komprimierungscode möglicherweise ungültig oder es wird möglicherweise ein rein schwarzes Bild generiert.

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:

angularJS+Ionic für das Hochladen von Bildern auf mobile Endgeräte (mit Code)

Particles.js-Implementierung Partikeldynamische Hintergrundanimation

Das obige ist der detaillierte Inhalt vonJs+Canvas führt eine Bildkomprimierung durch. 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