const watermark = require('../components/share-dialog/images/watermark.png')
export const drawWatermark = function ({
url = '', // 图片链接
textAlign = 'center', // 居中方式
textBaseline = 'middle', // 垂直居中方式
font = '23px PingFangSC-Regular', // 字体
fillStyle = 'rgba(255,255,255, 1)', // 颜色
content = '内容', // 内容
textX = 0, // X轴
textY = 30, // Y轴
logo = { w: 120, h: 30, src: watermark }, // logo宽
imgType = 'image/jpeg', // 保存类型 jpeg/png
imgQuality = 0.6 // 图片质量 0-1
} = {}) {
let img = new Image();
img.src = url.replace(
'',// 代理地址
''//前端代理地址
);
img.crossOrigin = 'anonymous';
let proms = new Promise((resolve, reject) => {
// logo
let imglogo = new Image();
imglogo.src = logo.src;
imglogo.setAttribute('crossOrigin', 'anonymous');
imglogo.onload = function() {
img.onload = function() {
let canvas = document.createElement('canvas'); // 创建canvas
canvas.width = img.width;
canvas.height = img.height;
let ctx = canvas.getContext('2d');
ctx.letterSpacingText = canvasLetterSpacing;
// 背景
ctx.drawImage(img, 0, 0, img.width, img.height);
// 动态水印
// 文字
// ctx.textAlign = textAlign;
// ctx.textBaseline = textBaseline;
// ctx.font = font;
// ctx.fillStyle = fillStyle;
// let logoFontX = img.width - (textX || img.width / 2) + (logo.w / 2)
// let logoFontY = (img.height - textY) + ((logo.h - 23) / 2) - 1
// let logoFontW = ctx.letterSpacingText(
// content,
// logoFontX,
// logoFontY,
// 2
// );
// let logoX = img.width - (textX || img.width / 2) - (logoFontW / 1.5)
// let logoY = (img.height - textY - logo.h / 2)
// 蒙层
let x1 = img.width / 2
let y1 = img.height
let x2 = img.width / 2
let y2 = img.height - 120
// x1, y1 起始坐标 x2,y2 终点坐标
let grd = ctx.createLinearGradient(x1, y1, x2, y2)
grd.addColorStop(0, 'rgba(0, 0, 0, 0.5)');
grd.addColorStop(1, 'rgba(0, 0, 0, 0)');
ctx.fillStyle = grd;
ctx.fillRect(0, y2, img.width, 120);
// 水印图片
let logoX = img.width - (textX || img.width / 2) - (logo.w / 2)
let logoY = (img.height - textY - logo.h / 2)
ctx.drawImage(imglogo, logoX, logoY, logo.w, logo.h);
let base64Url = canvas.toDataURL(imgType, imgQuality);
resolve(base64Url)
};
img.onerror = function() {
let none = ''
reject(none)
};
}
})
return proms
}
图片加水印
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 【导师】王玉印 【总舵主】焦杨 易琳 【分舵主】付春蕾 【作者】付春蕾 【导图解说】 中心图:因为这幅导图是点评作...