您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Drag and drop images onto the canvas to load them
// ==UserScript== // @name Image Drop // @version 1.2 // @description Drag and drop images onto the canvas to load them // @author Bell // @namespace https://greasyfork.org/users/281093 // @match https://sketchful.io/ // @grant none // jshint esversion: 6 // ==/UserScript== document.querySelector('#private').style.display = 'inline'; const sketchCanvas = document.querySelector('#canvas'); const sketchCtx = sketchCanvas.getContext('2d'); sketchCanvas.addEventListener('dragenter', highlight, false); sketchCanvas.addEventListener('dragleave', unhighlight, false); sketchCanvas.addEventListener('drop', handleDrop, false); sketchCanvas.addEventListener('dragover', function(event) { event.preventDefault(); }, false); sketchCanvas.save = () => { canvas.dispatchEvent(new MouseEvent('pointerup', { bubbles: true, clientX: 0, clientY: 0, button: 0 })); }; function handleDrop(e) { e.preventDefault(); sketchCanvas.style.filter = ''; const dt = e.dataTransfer; const files = dt.files; if (files.length && files !== null) { handleFiles(files); } } function handleFiles(files) { ([...files]).forEach(previewFile); } function previewFile(file) { const reader = new FileReader(); reader.readAsDataURL(file); reader.onloadend = () => { const img = document.createElement('img'); img.src = reader.result; img.onload = () => { loadImage(img); }; }; } function loadImage(img) { if (img.height && img !== null && sketchCanvas.height) { const heightRatio = img.height / sketchCanvas.height; // Scale the image to fit the canvas if (heightRatio && heightRatio != 1) { img.height /= heightRatio; img.width /= heightRatio; } // Center the image const startX = Math.floor(sketchCanvas.width / 2 - img.width / 2); sketchCtx.drawImage(img, startX, 0, img.width, img.height); sketchCanvas.save(); } } function highlight(e) { e.preventDefault(); sketchCanvas.style.filter = 'brightness(0.5)'; } function unhighlight(e) { e.preventDefault(); sketchCanvas.style.filter = ''; }