-1
JavaScriptを初めて使用しています。ここ数日、私はすべてのタブのスクリーンショットを取り込んでこのデータをクリップボードにプッシュするChromeの拡張機能を作成します。各画像の重さが多いので、圧縮することに決めました。しかし、それは動作しません。 誰でも問題の原因を知ることができますか?イメージをプログラムで圧縮し、JavaScriptを使用してクリップボードにプッシュするにはどうすればよいですか?
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);
}
実際に圧縮を行っているコードはありません...「動作しません」とはどういう意味ですか?どのようなエラーメッセージが表示されますか? –
このコードをデバッグしているときに、コンソールに黒いボックスとして表示される画像へのリンクが表示されます。この行は圧縮ですinput.value = canvas.toDataURL( 'image/jpeg'、0.1); – Sergey
イメージがキャンバスに描画される前にロードされるのを待っているわけではありません。 'newImage.onload = function(){varキャンバス... removeChild(入力)};'あなたは 'canvas.width = img.width; canvas.height = img.height; ' – Kaiido