选择图片
确定
<script type="text/javascript">
var imgUploaded = document.querySelector('#imgUploaded');
var oSure = document.querySelector('#sure');
var oUploadSrc = '',
size = 180;
function readFile(file) {
var reader = new FileReader();
reader.readAsDataURL(file)
reader.onload = function (e) {
imgUploaded.innerHTML = ``;
oUploadSrc = reader.result;
}
}
var oFile = document.getElementById('uploadFile');
oFile.onchange = function (e) {
var file = e.target.files[0];
readFile(file)
}
oSure.onclick = function () {
var val = document.querySelector('#text').value;
var oUploadedImg = imgUploaded.querySelector('img');
if (oUploadSrc.length === 0) {
alert("请先选择图片");
return false;
} else if (val.trim().length === 0) {
alert('请输入图片的水印文字');
return false;
}
var cans = document.createElement('canvas');
var canW = oUploadedImg.width;
var canH = oUploadedImg.height;
cans.width = canW;
cans.height = canH;
var ctx = cans.getContext('2d');
var grd = ctx.createLinearGradient(0, 0, canW, 0)
var img = new Image();
img.src = oUploadSrc;
img.onload = function () {
ctx.drawImage(img, 0, 0, canW, canH);
ctx.font = "30px 华文隶书";
grd.addColorStop(0, 'red')
grd.addColorStop(0.2, 'orange')
grd.addColorStop(0.4, 'yellow')
grd.addColorStop(0.6, 'green')
grd.addColorStop(0.8, 'blue')
grd.addColorStop(1, 'indigo')
ctx.fillStyle = grd;
const textW = Math.round(ctx.measureText(`@${val}`).width);
const x = canW - textW <= 0 ? 0 : canW - textW;
ctx.fillText(`@${val}`, x, canH - 20);
var url = cans.toDataURL();
imgUploaded.innerHTML = ``;
}
}
</script>