您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
System generaowania obrazów z tekstu.
// ==UserScript== // @name BezpiecznyKlucz 500+ // @version 0.9 // @description System generaowania obrazów z tekstu. // @author tRNA // @license GNU AGPLv3 // @match http://*.wykop.pl/* // @namespace https://gf.qytechs.cn/pl/users/56863 // @grant none // ==/UserScript== (function(r,k){"function"==typeof define&&define.amd?define([],k):"object"==typeof exports?module.exports=k():r.download=k()})(this,function(){return function k(a,b,g){function q(p){var a=p.split(/[:;,]/);p=a[1];var a=("base64"==a[2]?atob:decodeURIComponent)(a.pop()),d=a.length,b=0,c=new Uint8Array(d);for(b;b<d;++b)c[b]=a.charCodeAt(b);return new f([c],{type:p})}function l(a,b){if("download"in d)return d.href=a,d.setAttribute("download",m),d.className="download-js-link",d.innerHTML="downloading...",d.style.display="none",document.body.appendChild(d),setTimeout(function(){d.click(),document.body.removeChild(d),!0===b&&setTimeout(function(){e.URL.revokeObjectURL(d.href)},250)},66),!0;if(/(Version)\/(\d+)\.(\d+)(?:\.(\d+))?.*Safari\//.test(navigator.userAgent))return a=a.replace(/^data:([\w\/\-\+]+)/,"application/octet-stream"),!window.open(a)&&confirm("Displaying New Document\n\nUse Save As... to download, then click back to return to this page.")&&(location.href=a),!0;var c=document.createElement("iframe");document.body.appendChild(c),b||(a="data:"+a.replace(/^data:([\w\/\-\+]+)/,"application/octet-stream")),c.src=a,setTimeout(function(){document.body.removeChild(c)},333)}var e=window,c=g||"application/octet-stream",h=!b&&!g&&a,d=document.createElement("a");g=function(a){return String(a)};var f=e.Blob||e.MozBlob||e.WebKitBlob||g,m=b||"download",f=f.call?f.bind(e):Blob;"true"===String(this)&&(a=[a,c],c=a[0],a=a[1]);if(h&&2048>h.length&&(m=h.split("/").pop().split("?")[0],d.href=h,-1!==d.href.indexOf(h))){var n=new XMLHttpRequest;return n.open("GET",h,!0),n.responseType="blob",n.onload=function(a){k(a.target.response,m,"application/octet-stream")},setTimeout(function(){n.send()},0),n}if(/^data\:[\w+\-]+\/[\w+\-]+[,;]/.test(a)){if(!(2096103.424<a.length&&f!==g))return navigator.msSaveBlob?navigator.msSaveBlob(q(a),m):l(a);a=q(a),c=a.type||"application/octet-stream"}b=a instanceof f?a:new f([a],{type:c});if(navigator.msSaveBlob)return navigator.msSaveBlob(b,m);if(e.URL)l(e.URL.createObjectURL(b),!0);else{if("string"==typeof b||b.constructor===g)try{return l("data:"+c+";base64,"+e.btoa(b))}catch(p){return l("data:"+c+","+encodeURIComponent(b))}c=new FileReader,c.onload=function(a){l(this.result)},c.readAsDataURL(b)}return!0}});// download.js by dandavis (CC BY 4.0) $(document).ready(function() { function AddButton() { $('head').append('<style type="text/css"> .affect.close{cursor:pointer;}#NumberKeys{width: 12%;height: 29px;} #TrnImg{width: 100%;} #NumberKeys{ color: #000 !important;} #NumberKeys:focus{color: #000 !important;}</style>'); $(".row.buttons.dnone").find("a.button.openAddSurveyOverlay").after('<a class="button openAddKeyOverlay" style="margin-left: 4px;"><i class="fa fa-lock"></i></a>'); } function Main() { formHtml = '<div class="AddPopKeyOverlay" style="display:none;"> <div class="overlay" style="display: block;"></div><div class="summary popup openAddKeyOverlay"> <div class="lcontrast"> <div><h3 class="dark">Generator kluczy</h3></div><a class="affect close"><i class="fa fa-times red"></i></a><div><div> <label for="NumberKeys">Ilość: </label> <input type="number" id="NumberKeys" min="0" max="19" step="1"> <button class="button" id="TrnAdd">Dodaj</button> <button class="button" id="TrnGen">Generuj</button> <button class="button" id="TrnDel">Usuń</button><button class="button" id="TrnSav">Zapisz</button> <button class="button" id="TrnAut">Auto</button></div><div><label for="TrnColor">Wersja kolorystyczna: </label> <input type="radio" name="TrnColor" value="1" checked> Jasna <input type="radio" name="TrnColor" value="2"> Ciemna</div></div><table style="width:100%"> <tr> <td><div style="display:block;clear:both;"> <div id="TrnBlock"></div></div></td><td><p id="TrnInfo" style="display:none">Jest to przykładowy obraz, prawdziwy jest większy ( ͡° ͜ʖ ͡°)</p><canvas id="TrnCanvas" style="display: none;"></canvas><img id="TrnImg"></div></td></tr></table> </div></div></div>'; $("#commentFormContainer").after(formHtml); $("#TrnGen").hide(); $("#TrnSav").hide(); $("#TrnAut").hide(); $(".AddPopKeyOverlay").show(); window.NumKeys = 0; if (NumKeys !== 0) { NumKeys = 0; } window.CanHeight = 0; window.BackgroundColor = "#FFF"; window.TextColor = "#000"; window.AltTextColor = "#6f7072"; window.HashID = '96ab4f6d41dad67'; $(".affect.close").click(function() { $(".AddPopKeyOverlay").hide(); $(".AddPopKeyOverlay").remove(); }); $('#TrnAdd').click(function() { if ($("#NumberKeys").val() > 19) { alert("Przekroczono dozwoloną wartość!"); return false; } RealNumKeys = $("#NumberKeys").val(); if (RealNumKeys <= 0) { RealNumKeys = 1; } while (NumKeys <= $("#NumberKeys").val() - 1) { $("#TrnBlock").append('<div><input type="text" id="line' + NumKeys + '" name="line1" style="width:200px;" /></div>'); NumKeys++; } $("#TrnGen").show(); }); $('#TrnGen').click(function() { if ($('input[name="TrnColor"]:checked').length > 0) { var test = $('input[name="TrnColor"]:checked').val(); if (test == 1) { BackgroundColor = "#FFF"; TextColor = "#000"; } else { BackgroundColor = "#2c2c2c"; TextColor = "#FFF"; AltTextColor = "FFF"; } } if (RealNumKeys === 0) { CanHeight = 30; } else { CanHeight = RealNumKeys * 30; } updateCanvas(); $("#TrnSav").show(); $("#TrnAut").show(); }); $('#TrnDel').click(function() { var NumOfNumKeys = $("#NumberKeys").val() - 1; if (NumOfNumKeys > 0) { NumKeys = NumOfNumKeys; RealNumKeys = NumOfNumKeys; $('#NumberKeys').val(NumOfNumKeys); $("#line" + NumOfNumKeys).remove(); if (NumOfNumKeys === 0) { $("#TrnGen").hide(); } } }); $('#TrnSav').click(function() { var random = Math.floor((Math.random() * 10) + 1); download($('#TrnImg').attr('src'), "Rozdajo" + random + ".png", "image/png"); }); $('#TrnAut').click(function() { var random = Math.floor((Math.random() * 10) + 1); download($('#TrnImg').attr('src'), "Rozdajo" + random + ".png", "image/png"); $("a.affect.close").trigger("click"); $("a.button.openAddMediaOverlay").trigger("click"); $("li.selectFile a").trigger("click"); }); } AddButton(); $(document).on('click', 'a.button.openAddKeyOverlay', function(e) { e.preventDefault(); setTimeout(Main, 10); }); function updateCanvas() { var canvas = $('#TrnCanvas')[0]; var context = canvas.getContext('2d'); var maxWith = canvas.width; var imageObj = new Image(); imageObj.onload = function() { context.drawImage(imageObj, 0, 0); }; imageObj.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAABlBMVEX///////9VfPVsAAAACklEQVQImWNgAAAAAgAB9HFkpgAAAABJRU5ErkJggg=="; context.canvas.width = 475; context.canvas.height = CanHeight + 20; context.clearRect(0, 0, canvas.width, canvas.height); context.drawImage(imageObj, 0, 0); context.fillStyle = BackgroundColor; context.fillRect(0, 0, 475, CanHeight + 20); context.fillStyle = TextColor; context.textAlign = "center"; context.font = "bold 28pt Courier New"; var a = 0; for (var i = 0; i < $("#NumberKeys").val(); i++) { a = a + 1; context.fillText($('#line' + i + '').val(), canvas.width * 0.5, a * 30, maxWith); } a = 0; context.font = '10pt Calibri'; context.textAlign = 'right'; context.fillStyle = AltTextColor; context.fillText("Powered by tRNA", canvas.width, CanHeight + 17, maxWith); document.getElementById('TrnImg').src = canvas.toDataURL(); $("#TrnInfo").show(); } });
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址