前端手势控制图片插件书写五(添加贴纸功能)

Posted qdcnbj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端手势控制图片插件书写五(添加贴纸功能)相关的知识,希望对你有一定的参考价值。

一、贴纸函数需求

  在开发中遇到需要在图片上加上其他各种小贴纸最终合成一张图片的需求。

  技术图片

  所以在插件中添加了类似的功能。

二、添加贴纸原理

  本质上就是将两张变换后的canvas分别导出一张图片,然后将这两张图片按顺序绘制在新的canvas画布上,最终导出合成后的图片。

  实例代码:

drawSyntheticImg()
        let keyArr = Object.keys(addPicObj)
        var bgcanvas = document.getElementById(‘canvas1‘);
        var ctx = bgcanvas.getContext(‘2d‘);
        let canvas_outer = document.getElementById(‘canvas_outer1‘);
        let canvasOuter = canvas_outer.getBoundingClientRect();
        ctx.clearRect(0, 0, canvasOuter.width * this.imageQuality, canvasOuter.height * this.imageQuality);
        bgcanvas.height = canvasOuter.height * this.imageQuality;
        bgcanvas.width = canvasOuter.width * this.imageQuality;
        console.warn(addPicObj)

        //ios手机safari不支持async,所以仍然会出现图层被覆盖的情况。
        async function orderDraw()
            for (let i = 0; i < keyArr.length; i++) 
                let pure_imgSrc = addPicObj[keyArr[i]].pure_img;
                let pure_img = document.createElement(‘img‘);
                pure_img.src = pure_imgSrc;
                function imgLoad()
                    pure_img.onload = () => 
                        ctx.drawImage(pure_img, 0, 0, bgcanvas.width, bgcanvas.height);
                    
                
                await imgLoad()
            
        
        orderDraw()
    

 未完待续,详细介绍以后再添加~

以上是关于前端手势控制图片插件书写五(添加贴纸功能)的主要内容,如果未能解决你的问题,请参考以下文章

前端手势控制图片插件书写四(图片上传及Ios图片方向问题)

前端手势控制图片插件书写二

前端怎么实现点击图片将图片放大而且图片可以手势随意缩放,最好附上代码,非常感谢

在 react Native 中添加贴纸并使用 Pinch in 或 Pinch out 调整大小:图片编辑应用程序

ArcGIS快速制图插件介绍

如何给应用增加图片编辑功能:剪裁滤镜贴纸排版标签……(持续更新中)