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 № 1Merci, 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);
}
}