您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
17/01/2024, 16:06:44
// ==UserScript== // @name Imgflip direct download // @namespace Violentmonkey Scripts // @match https://imgflip.com/memegenerator* // @grant none // @version 1.0 // @author thepiguy (gh: rocking1001) // @description 17/01/2024, 16:06:44 // @license MIT // ==/UserScript== let download_btn = document.createElement('button'); download_btn.innerText = "download"; download_btn.onclick = download; download_btn.classList.add("mm-reset"); download_btn.classList.add("reset"); download_btn.classList.add("but"); download_btn.classList.add("l"); let copy_btn = document.createElement('button'); copy_btn.innerText = "copy"; copy_btn.onclick = copyimg; copy_btn.classList.add("mm-reset"); copy_btn.classList.add("reset"); copy_btn.classList.add("but"); copy_btn.classList.add("l"); let btn_container = document.querySelector('.gen-wrap-btns'); btn_container.appendChild(download_btn); btn_container.appendChild(copy_btn); function download() { const canvas = document.querySelector('.mm-canv'); const imageDataURL = canvas.toDataURL('image/png'); const downloadLink = document.createElement('a'); downloadLink.download = 'canvas_image.png'; downloadLink.href = imageDataURL; document.body.appendChild(downloadLink); downloadLink.click(); document.body.removeChild(downloadLink); } function copyimg() { const canvas = document.querySelector('.mm-canv'); const imageDataURL = canvas.toDataURL('image/png'); const blob = dataURLtoBlob(imageDataURL); navigator.clipboard.write([ new ClipboardItem({ 'image/png': blob }) ]).then(() => { console.log('Canvas image copied to clipboard successfully!'); }).catch((err) => { console.error('Error copying canvas image to clipboard:', err); }); } function dataURLtoBlob(dataURL) { const arr = dataURL.split(','); const mime = arr[0].match(/:(.*?);/)[1]; const bstr = atob(arr[1]); let n = bstr.length; const u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new Blob([u8arr], { type: mime }); }