都用Canvas的方案解决
情况一:水印是图片(两张图片canvas.drawImage两次重叠即可)
<input type="file" id="uploadFile" class="clip" accept="image/*">
<label class="ui-button ui-button-primary" for="uploadFile">选择图片</label>
<img id="imgCover" src="./watermark.png" class="clip">
<p id="imgUploadX"></p>
var eleUploadFile = document.getElementById('uploadFile');
var eleImgCover = document.getElementById('imgCover');
var eleImgUploadX = document.getElementById('imgUploadX');
if (history.pushState) {
eleUploadFile.addEventListener('change', function (event) {
var reader = new FileReader();
var file = event.target.files[0] || event.dataTransfer.files[0];
reader.onload = function (e) {
var base64 = e.target.result;
if (base64.length > 1024 * 500) {
alert('图片尺寸请小于500K');
return;
} else {
// 使用canvas合成图片,并base64化
imgTogether(base64, function (url) {
// 尺寸
var size = 180 / (window.devicePixelRatio || 1);
// 预览
eleImgUploadX.innerHTML = '<img src="' + url + '" width="' + size + '" height="' + size + '">';
});
}
};
reader.readAsDataURL(file);
});
// canvas图片合成
var imgTogether = function (url, callback) {
var canvas = document.createElement('canvas');
var size = 180;
canvas.width = size;
canvas.height = size;
var context = canvas.getContext('2d');
// 这是上传图像
var imgUpload = new Image();
imgUpload.onload = function () {
// 绘制
context.drawImage(imgUpload, 0, 0, size, size, 0, 0, size, size);
// 再次绘制
context.drawImage(eleImgCover, 0, 0, size, size, 0, 0, size, size);
// 回调
callback(canvas.toDataURL('image/png'));
};
imgUpload.src = url;
};
} else if (eleImgUploadX) {
eleImgUploadX.className = 'remind';
eleImgUploadX.innerHTML = '本演示IE10+下才有效果';
}
#wrap {
display: inline-block;
}
<div id="wrap">
<img src="http://placekitten.com/600/600" id="xxx" />
</div>
<script src="js/app.js"></script>
(function () {
// canvas 实现 watermark
function __canvasWM({
// 使用 ES6 的函数默认值方式设置参数的默认取值
// 具体参见 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/Default_parameters
container = document.body,
image,
width = '200px',
height = '150px',
textAlign = 'center',
textBaseline = 'middle',
font = "20px microsoft yahei",
fillStyle = 'rgba(184, 184, 184, 0.8)',
content = '请勿外传',
rotate = '30',
zIndex = 1000
} = {}) {
var args = arguments[0];
var canvas = document.createElement('canvas');
canvas.setAttribute('width', image.width);
canvas.setAttribute('height', image.height);
var ctx = canvas.getContext("2d");
ctx.textAlign = textAlign;
ctx.textBaseline = textBaseline;
ctx.font = font;
ctx.fillStyle = fillStyle;
ctx.rotate(Math.PI / 180 * rotate);
ctx.fillText(content, parseFloat(image.width) / 2, parseFloat(image.height) / 2);
var base64Url = canvas.toDataURL();
const watermarkDiv = document.createElement("div");
watermarkDiv.setAttribute('style', `
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
z-index:${zIndex};
pointer-events:none;
background-repeat:repeat;
background-image:url('${base64Url}')`);
container.style.position = 'relative';
container.insertBefore(watermarkDiv, container.firstChild);
}
window.__canvasWM = __canvasWM;
})();
let imgEl = document.querySelector('#xxx');
imgEl.onload = function() {
__canvasWM({
container: document.querySelector('#wrap'),
image: imgEl,
content: 'fuck'
})
}
本文向大家介绍使用Node.js给图片加水印的方法,包括了使用Node.js给图片加水印的方法的使用技巧和注意事项,需要的朋友参考一下 一、准备工作: 首先,确保你本地已经安装好了node环境。 然后,我们进行图像编辑操作需要用到一个Node.js的库:images。 这个库的地址是:https://github.com/zhangyuanwei/node-images,作者定义它为 “Node.
本文向大家介绍php给图片加文字水印,包括了php给图片加文字水印的使用技巧和注意事项,需要的朋友参考一下 注释非常的详细了,这里就不多废话了 以上所述就是本文的全部内容了,希望大家能够喜欢。
本文向大家介绍IOS给图片添加水印(两种方式),包括了IOS给图片添加水印(两种方式)的使用技巧和注意事项,需要的朋友参考一下 为了防止自己辛苦做的项目被别人盗走,采取图片添加水印,在此表示图片的独一无二。加水印不是在上面添加几个Label,而是我们把字画到图片上成为一个整体,下面小编给大家分享IOS给图片添加水印(两种方式)。 提供一个方法,此方法只需要传递一个要加水印的图片和水印的内容就达到效
本文向大家介绍如何使用PHP给图片加水印,包括了如何使用PHP给图片加水印的使用技巧和注意事项,需要的朋友参考一下 为了防止辛苦做出来的图片被盗用,很多照片都会加上水印,可以直接用图片工具添加水印再上传,但PHP中就可以实现给图片加水印的功能,本文章向码农们介绍 php 给图片加水印的两种方法,感兴趣的码农可以参考一下本文章的源代码。 方法一:PHP最简单的加水印方法 方法二:php给图片加文字水
A common use case for watermarking is to lay one image on top of another. The following examples demonstrate some of the pre-packaged image positioning functions that come with watermark.js. Lower Rig
本文向大家介绍C#给图片添加水印完整实例,包括了C#给图片添加水印完整实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#给图片添加水印的方法。分享给大家供大家参考,具体如下: 希望本文所述对大家C#程序设计有所帮助。