/ / Comment compresser une image par programme et la pousser dans le presse-papiers en utilisant JavaScript? - javascript, toile

Comment compresser l'image par programme et la pousser dans le presse-papiers en utilisant JavaScript? - javascript, toile

Je suis nouveau sur JavaScript. Ces derniers jours, je fais une extension pour Chrome, qui prend des captures d'écran de tous les onglets et pousse ces données dans le presse-papiers. Chaque image pèse beaucoup et j'ai donc décidé de les compresser. Mais ça ne marche pas. Quelqu'un peut-il savoir quel est le problème?

function copyToClipBoard(dataImage){
document.body.appendChild(input);
input.style.position = "fixed";
input.style.opacity = 0;

var newImage = new Image();
newImage.src = dataImage;
console.log (newImage);

var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d").drawImage(newImage, 0, 0);
input.value = canvas.toDataURL("image/jpeg", 0.1);
console.log(input.value);
input.select();
document.execCommand("Copy");
document.body.removeChild(input);
}

Réponses:

0 pour la réponse № 1

Merci, Kaiido. Maintenant, chaque pensée fonctionne. Le problème était que l'image n'avait pas eu le temps de se charger avant de dessiner.

function copyToClipBoard(dataImage){
document.body.appendChild(input);
input.style.position = "fixed";
input.style.opacity = 0;

var newImage = new Image();
newImage.src = dataImage;
console.log (newImage);

newImage.onload = function(){
var canvas = document.createElement("canvas");
canvas.width = 800;
canvas.height = 500;
var ctx = canvas.getContext("2d").drawImage(newImage, 0, 0, newImage.width, newImage.height, 0, 0, canvas.width, canvas.height);
input.value = canvas.toDataURL("image/jpeg", 0.9);
console.log(input.value);
input.select();
document.execCommand("Copy");
document.body.removeChild(input);
}
}