您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
useful for io games like woomy.arras.io (press [:])
// ==UserScript== // @name canvas screenshot to tga // @namespace http://bzzzzdzzzz.blogspot.com/ // @description useful for io games like woomy.arras.io (press [:]) // @author BZZZZ // @include * // @version 0.6 // @grant none // @run-at document-start // @inject-into content // ==/UserScript== (function( blobArr, blobOpt, linkTag, Date, toISOString, Blob, appendChild, removeChild, getImageData, getKey, ArrayBuffer, Uint8Array, createObjectURL, revokeObjectURL, setHref, setDownload, bodyList, getData, getWidth, getHeight, getContext, click, consoleError, consoleWarn, canvasList ){ "use strict"; bodyList.__proto__=null; canvasList.__proto__=null; window.addEventListener("keypress",function(evnt){ try{ if(getKey(evnt)!=":")return; var i=canvasList[0]; if(!i){ consoleError("canvas screenshot to tga: no canvas tag"); return; } var w=getWidth(i),h=getHeight(i),raw=getData(getImageData(getContext(i,"2d"),0,0,w,h)),w3=w*3,w4=w*4,end,i2=h*w4,i3,tga=new Uint8Array(blobArr[0]=new ArrayBuffer(18+h*w3)); tga[2]=2; tga[12]=w&255; tga[13]=w>>8; tga[14]=h&255; tga[15]=h>>8; tga[16]=24; i=18; while(0<i2){ i2-=w4; end=i+w3; i3=i2; while(i<end){ tga[i++]=raw[2+i3]; tga[i++]=raw[1+i3]; tga[i++]=raw[i3]; i3+=4; } } raw=toISOString(new Date()); i2=raw.length; i=0; w="shot_"; while(i<i2)w+=((i3=raw[i++])==":")?"_":i3; w+=".tga"; setDownload(linkTag,w); tga=createObjectURL(new Blob(blobArr,blobOpt)); setHref(linkTag,tga); i=bodyList[0]; try{ if(i)appendChild(i,linkTag); }catch(err){ consoleWarn("canvas screenshot to tga: failed to append a to body:",err); } click(linkTag); try{ if(i)removeChild(i,linkTag); }catch(err){ consoleWarn("canvas screenshot to tga: failed to remove a from body:",err); } revokeObjectURL(tga); }catch(err){ consoleError("canvas screenshot to tga:",err); } },false); })( [null], {"__proto__":null,"type":"image/x-targa"}, document.createElementNS("http://www.w3.org/1999/xhtml","a"), Date, Function.prototype.call.bind(Date.prototype.toISOString), Blob, Function.prototype.call.bind(Node.prototype.appendChild), Function.prototype.call.bind(Node.prototype.removeChild), Function.prototype.call.bind(CanvasRenderingContext2D.prototype.getImageData), Function.prototype.call.bind(KeyboardEvent.prototype.__lookupGetter__("key")), ArrayBuffer, Uint8Array, URL.createObjectURL, URL.revokeObjectURL, Function.prototype.call.bind(HTMLAnchorElement.prototype.__lookupSetter__("href")), Function.prototype.call.bind(HTMLAnchorElement.prototype.__lookupSetter__("download")), document.getElementsByTagNameNS("http://www.w3.org/1999/xhtml","body"), Function.prototype.call.bind(ImageData.prototype.__lookupGetter__("data")), Function.prototype.call.bind(HTMLCanvasElement.prototype.__lookupGetter__("width")), Function.prototype.call.bind(HTMLCanvasElement.prototype.__lookupGetter__("height")), Function.prototype.call.bind(HTMLCanvasElement.prototype.getContext), Function.prototype.call.bind(HTMLElement.prototype.click), console.error, console.warn, document.getElementsByTagNameNS("http://www.w3.org/1999/xhtml","canvas") );