// ==UserScript==
// @name logoExportScript
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Find the svg tag in your website and add an export button!
// @author Hubery
// @match *://www.logosc.cn/*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @require http://code.jquery.com/jquery-2.1.1.min.js
// @require https://cdn.bootcdn.net/ajax/libs/canvasjs/1.7.0/canvasjs.min.js
// @grant GM_download
// @license MIT
// ==/UserScript==
// 导出SVG为文件
function exportSVG(svgContent, fileName) {
var blob = new Blob([svgContent], { type: 'image/svg+xml' });
var url = URL.createObjectURL(blob);
var link = document.createElement('a');
link.href = url;
link.download = fileName;
link.click();
URL.revokeObjectURL(url);
}
// 导出为png
function exportSVGToPNG(svgElement, scaleFactor=2) {
var width = svgElement.clientWidth * scaleFactor;
var height = svgElement.clientHeight * scaleFactor;
// 绘制 SVG 到画布
var svgData = new XMLSerializer().serializeToString(svgElement);
// 创建一个新的Image对象
var image = new Image();
image.src = 'data:image/svg+xml;base64,' + btoa(svgData);
// 当图像加载完成时
image.onload = function() {
var canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = height;
var context = canvas.getContext('2d');
// 在画布上绘制图像
context.drawImage(image, 0, 0);
// 导出画布为PNG并下载
GM_download(canvas.toDataURL('image/png'), 'export.png');
};
}
function identifyDivs($) {
$('.card.azoomIn').each(function() {
var $div = $(this);
if (!$div.attr('selected')) {
// 做一些你想要的操作,例如添加selected属性后的样式修改
$div.attr('selected', 'true');
// 添加按钮
var $svgButton = $('<button>').text('下载svg');
$svgButton.css({
color: 'white',
backgroundColor: '#1677ff',
fontSize: '14px',
height: '32px',
padding: '4px 15px',
borderRadius: '6px',
border: 'none',
'margin-left': '10px',
});
// 添加点击事件处理程序
$svgButton.click(function() {
console.log($(this).text()); // 打印当前按钮的内容
var $svg = $div.find('.svg-card svg');
if ($svg.length > 0) {
var svgContent = $svg[0].outerHTML
exportSVG(svgContent, 'svg_file.svg');
}
});
$div.prepend($svgButton);
var $pngButton = $('<button>').text('下载png');
$pngButton.css({
color: 'white',
backgroundColor: '#48ce15',
fontSize: '14px',
height: '32px',
padding: '4px 15px',
borderRadius: '6px',
border: 'none'
});
// 添加点击事件处理程序
$pngButton.click(function() {
var $svg = $div.find('.svg-card svg');
if ($svg.length > 0) {
// var svgContent = $svg[0].outerHTML
var svgElement = $svg[0]
var scaleFactor = $("#scaleFactor").val()
exportSVGToPNG(svgElement, scaleFactor);
}
});
$div.prepend($pngButton);
}
});
}
function showDownloadButton($){
var button = $('<button>显示下载</button>');
// 设置按钮的 CSS 样式
button.css({
color: 'white',
backgroundColor: '#16baaa',
fontSize: '14px',
position: 'fixed',
top: '55%',
left: '10px',
height: '32px',
borderRadius: '6px',
border: 'none',
padding: '4px 15px',
'transform': 'translateY(-50%)',
});
button.click(function(){
identifyDivs($)
})
$('body').append(button);
//添加png比例
var inputDiv =$('<div class="InputBox"><label for="factor">png倍数:</label><input type="number" value=1 id="scaleFactor" style="height: 22px;width: 55px; line-height: 1.3rem; line-height: 22px; border-width: 1px; border-style: solid; background-color: #fff; color: rgba(0,0,0,.85); border-radius: 2px;" step="0.1"></div>')
inputDiv.css({
fontSize: '14px',
position: 'fixed',
top: '60%',
left: '10px'
})
// 将按钮添加到 body 元素中
$('body').append(inputDiv);
}
function removeWatermarklayer($) {
// 创建按钮元素
var button = $('<button>去水印</button>');
// 设置按钮的 CSS 样式
button.css({
color: 'white',
backgroundColor: '#16baaa',
fontSize: '14px',
position: 'fixed',
top: '50%',
left: '10px',
height: '32px',
borderRadius: '6px',
border: 'none',
padding: '4px 15px',
'transform': 'translateY(-50%)',
});
button.click(function(){
$(".watermarklayer").remove()
})
// 将按钮添加到 body 元素中
$('body').append(button);
}
(function($) {
'use strict';
removeWatermarklayer($);
showDownloadButton($);
// setInterval(function() {identifyDivs(jQuery);}, 2000);
// Your code here...
})(jQuery);