Sono nuovo di JavaScript. Negli ultimi giorni ho fatto l'estensione per Chrome, che prende schermate di tutte le schede e trasferisce questi dati negli Appunti. Ogni immagine pesa molto e quindi ho deciso di comprimerle. Ma non funziona. Qualcuno può sapere qual è il problema?
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);
}
risposte:
0 per risposta № 1Grazie, Kaiido. Ora tutto funziona. Il problema era che l'immagine non aveva il tempo di caricare prima di disegnare.
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);
}
}