Maison  >  Article  >  interface Web  >  Js+Canvas effectue la compression d'image

Js+Canvas effectue la compression d'image

php中世界最好的语言
php中世界最好的语言original
2018-04-17 11:33:291380parcourir

Cette fois, je vais vous apporter Js+Canvas pour faire une compression d'image. Quelles sont les précautions pour faire une compression d'image avec Js+Canvas Ce qui suit est un cas pratique. . Levez-vous et jetez un œil.

/* 
 * 图片压缩
 * 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;
 }

Ce qui précède est une fonction de compression d'image qui renvoie des données d'image au format base64. Plus la valeur du taux de compression est élevée (entre 0 et 1), plus la qualité de l'image est élevée. Il est recommandé de ne pas convertir l'image au format png, car la base64 de l'image sera beaucoup plus longue que l'image convertie en jpeg. Voici l'appel réel :

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;
}

Remarque : L'appel à la méthode de compression et l'affectation du src de l'image doivent être placés dans la méthode onload de l'image. Parce que ce n'est qu'une fois l'image chargée qu'elle peut être compressée et convertie en base64 pour être affectée. S'il est placé en dehors de la méthode onload, le code de compression peut être invalide ou une image noire pure peut être générée.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

angularJS+Ionic pour le téléchargement d'images sur terminal mobile (avec code)

Implémentation de Particles.js Animation d'arrière-plan dynamique de particules

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn