firefox greasemonkey拡張
とあるゲームにスクリーンショットを撮る機能をこっそり追加します.
// ==UserScript==
// @name shiro_shot
// @namespace defghi1977
// @description 御城プロジェクト:REのスクリーンショットを撮ります
// @include http://assets.shiropro-re.net/html/Oshiro.html
// @version 1
// @grant none
// ==/UserScript==
'use strict';
(function () {
var version = '0.1';
var body = document.body;
var panel = document.createElement('div');
panel.className = 'shiro_shot';
var style = panel.style;
style.position = 'absolute';
style.top = '720px'
style.right = '10px';
style.fontSize = '10px';
style.zInidex = 100;
panel.textContent = '城SHOT v' + version;
var button = document.createElement('input');
button.type = 'button';
button.value = 'as is';
button.addEventListener('click', function () {
shot(false);
});
var buttonM = document.createElement('input');
buttonM.type = 'button';
buttonM.value = 'mask id';
buttonM.addEventListener('click', function () {
shot(true);
});
var msg = document.createElement('span');
var link = document.createElement('a');
link.download = 'shiro_shot.png';
var canvas = document.createElement('canvas');
panel.appendChild(button);
panel.appendChild(buttonM);
panel.appendChild(msg);
panel.appendChild(link);
body.appendChild(panel);
function shot(mask) {
var game = body.querySelector('#canvas');
canvas.width = game.width;
canvas.height = game.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(game, 0, 0);
if (mask) {
ctx.fillStyle = '#2e0f06';
ctx.fillRect(210, 5, 210, 24);
}
if (link.href) {
URL.revokeObjectURL(link.href);
}
canvas.toBlob(function (blob) {
link.href = URL.createObjectURL(blob);
link.click();
}, 'image/png');
}
}) ();
0 件のコメント:
コメントを投稿