canvas图片合成

本地上传图片或者后台返回图片,用canva合成例子


    <body>
        <img id="base64" />
        <input id="file" type="file" name="" />
        <canvas id="canvas2" width="800" height="500"></canvas>
        <script>
            document.querySelector("#file").addEventListener("change", function() {
                    console.log(document.querySelector("#file").value);
                    var file = this.files[0];
                    var canvas = document.getElementById("canvas2");
                    var ctx = canvas.getContext("2d");
                    var reader = new FileReader();
                    var image = new Image();
                    reader.onload = function(event) {
                        image.src = event.target.result;
                    };
                    reader.onloadend = function(e) {
                        image.onload = function() {
                            ctx.clearRect(0, 0, canvas.width, canvas.height);
                            ctx.translate(0, 0);
                            console.log(
                                image.width,
                                image.height,
                                image.naturalWidth,
                                image.naturalHeight
                            );
                            var imgnaturalWidth = image.naturalWidth;
                            var imgnaturalHeight = image.naturalHeight;
                            ctx.save();
                            image.width = imgnaturalWidth * 1;
                            image.height = imgnaturalHeight * 1;
                            var xpos = 0;
                            var ypos = 0;
                            ctx.drawImage(
                                image,
                                xpos - ypos,
                                xpos - ypos,
                                image.width,
                                image.height
                            );
                            ctx.restore();
                            var base64 = canvas.toDataURL();
                            document.querySelector("#base64").setAttribute('src',base64);
                            console.log(base64);
                        };
                    };
                    reader.readAsDataURL(file);
                });
        </script>
    </body>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值