用cavans给图片加水印

本文介绍了如何在HTML页面中使用Vue.js开发一个脚本,当图片加载完成后在其上添加动态水印。通过JavaScript操作DOM和CanvasAPI,实现在图片右下角显示Watermark的文字水印。
摘要由CSDN通过智能技术生成

原图片

index.html

<html>

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>images</title>
    <script src="./vue.global.js"></script>
</head>

<body>
    <div id="app">
        <div>
            <img id="imageId" src="../static/BB1komM9.jpg"/>
            <img id="imageId2" />
        </div>
    </div>
</body>

</html>

<script>
    // 创建Vue实例  
    const vmComputed = Vue.createApp({
        // new Vue({  
        el: '#app',
        mounted() {
            this.addWatermark();
        },
        methods: {
            addWatermark() {
                // 获取图片元素  
                const imgElement = document.getElementById('imageId');
                // 检查图片是否加载完成  
                if (imgElement.complete) {
                    this.applyWatermark(imgElement);
                } else {
                    imgElement.onload = () => {
                        this.applyWatermark(imgElement);
                    };
                }
            },
            applyWatermark(imgElement) {
                // 创建canvas元素  
                const canvas = document.createElement('canvas');
                const ctx = canvas.getContext('2d');

                // 设置canvas的大小与图片相同  
                canvas.width = imgElement.width;
                canvas.height = imgElement.height;

                // 将图片绘制到canvas上  
                ctx.drawImage(imgElement, 0, 0, imgElement.width, imgElement.height);

                // 设置水印文本的样式  
                ctx.font = '40px Arial';
                ctx.fillStyle = 'red'; // 红色水印  
                ctx.textAlign = 'right';
                ctx.textBaseline = 'bottom';

                // 将水印文本绘制到canvas上  
                const watermarkText = 'Watermark';
                ctx.fillText(watermarkText, canvas.width - 20, canvas.height - 20);

                // 将canvas转换为图片,并替换原图片元素  
                const dataURL = canvas.toDataURL('image/png');
                const newImg = new Image();
                newImg.src = dataURL;
                const imageId2 = document.getElementById('imageId2');
                imgElement.parentNode.replaceChild(newImg, imageId2);
            }
        }
    }).mount("#app")

</script>

效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值