uniapp九宫格图片

2020-09-12  本文已影响0人  在下高姓

标签: 切图


html

<view>
        <view class="mycanvas">
            <canvas canvas-id="mycnavas" id="mycnavas" @click="cancas"></canvas>
        </view>
        <view class="newpohoto" @click="newpohoto">
            开始切图
        </view>
        <view class="newcanvas">
            <canvas canvas-id="img1"></canvas>
            <canvas canvas-id="img2"></canvas>
            <canvas canvas-id="img3"></canvas>
            <canvas canvas-id="img4"></canvas>
            <canvas canvas-id="img5"></canvas>
            <canvas canvas-id="img6"></canvas>
            <canvas canvas-id="img7"></canvas>
            <canvas canvas-id="img8"></canvas>
            <canvas canvas-id="img9"></canvas>
        </view>
        <view class="download" @click="download">
            下载图片
        </view>
</view>
    
<!--css布局这里就不公布了-->

js

onReady() {
            const ctx = uni.createCanvasContext('mycnavas')
            let img=new Image();
            img.src='../../../static/img/head.jpeg'
            ctx.drawImage('../../../static/img/head.jpeg', 0, 0, 300, 300)
            ctx.draw()  
        },
methods: {
    newpohoto(){
        const cxt = uni.createCanvasContext('mycnavas')
        var q = 1;
        for (var i = 0; i < 3; i++) {//横
            for (var j = 0; j <3; j++) {//纵
                let K=q;//很重要的一步pc上可能是正常的,手机上里层的q就会全部变成10所以要在这里赋值给局部
                uni.canvasGetImageData({canvasId:'mycnavas',x:j * 100,y:i * 100, width:100,height:100,success(res) {//复制目标画布
                    const data1 = new Uint8ClampedArray(res.data);//返回的图像像素数据
                    uni.canvasPutImageData({//粘贴的分割的画布
                         data: data1,
                         canvasId: 'img'+K,//对应切割画布
                         x: 0,
                         y: 0,
                         width:100,
                         height:100,
                         success(res1) {
                                uni.canvasToTempFilePath({//导出切割画布,指定区域的内容导出生成指定大小的图片
                                    x: 0,
                                    y: 0,
                                    width: 100,
                                    height: 100,
                                    destWidth: 100,//导出图片宽度
                                    destHeight: 100,//导出图片高度
                                    canvasId: 'img'+K,//对应画布
                                    success: function(res) {
                                        //tempFilePath 为 base64
                                        // console.log(res.tempFilePath)
                                        arr.push(res.tempFilePath)//获取到的图片路径放入全局
                                    } 
                                })
                        },
                        fail(err) {
                          console.log(err)
                        }
                   }) 
                }});   
        q++;
        }
    }
},
上一篇下一篇

猜你喜欢

热点阅读