中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript中canvas如何實現九宮格切圖效果

發布時間:2021-09-01 14:45:12 來源:億速云 閱讀:373 作者:小新 欄目:開發技術

小編給大家分享一下JavaScript中canvas如何實現九宮格切圖效果,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

首先頁面展示

JavaScript中canvas如何實現九宮格切圖效果

直接上代碼

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        body {
            text-align: center;
        }
        
        canvas {
            border: 1px solid;
        }
        
        .newcanvas {
            width: 316px;
            height: 316px;
            margin: auto;
        }
        
        .newpohoto,
        .download {
            width: 300px;
            height: 40px;
            line-height: 40px;
            margin: auto;
            background-color: cornflowerblue;
            border-radius: 5px;
            cursor: pointer;
            margin: 10px auto;
            color: white;
        }
    </style>
</head>

<body>
    <h4>使用canvas實現九宮格切圖的效果</h4>
    <div class="mycanvas">
        <canvas width="300" height="300" id="mycnavas"></canvas>
    </div>
    <div class="newpohoto">
        開始切圖
    </div>
    <div class="newcanvas">
        <canvas width="100" height="100" id="img1"></canvas>
        <canvas width="100" height="100" id="img2"></canvas>
        <canvas width="100" height="100" id="img3"></canvas>
        <canvas width="100" height="100" id="img4"></canvas>
        <canvas width="100" height="100" id="img5"></canvas>
        <canvas width="100" height="100" id="img6"></canvas>
        <canvas width="100" height="100" id="img7"></canvas>
        <canvas width="100" height="100" id="img8"></canvas>
        <canvas width="100" height="100" id="img9"></canvas>
    </div>
    <div class="download">
        下載圖片
    </div>
    <script>
         var canvas = document.getElementById("mycnavas");      //現將圖片放上去
        var cxt = mycnavas.getContext("2d");
        var img = new Image();
        img.src = "../img/img10.jpg";
        window.onload = function() {
            cxt.drawImage(img, 0, 0, 400, 300);             //畫好圖片的位置
        } 
        var arr = [];        //將切的圖片存到數組里面
        document.getElementsByClassName("newpohoto")[0].onclick = function() {
            var q = 1;
            for (var i = 0; i < 3; i++) {     
                for (var j = 0; j < 3; j++) {
                    var data = cxt.getImageData(j * 100, i * 100, 400, 100);      //類似于“復制”功能
                    var img = document.getElementById("img" + q)
                    var newcxt = img.getContext("2d");
                    newcxt.putImageData(data, 0, 0);    //類似“粘貼”功能
                  arr.push(console.log(img.toDataURL(q + ".png")))     //toDataURL()方法的兩個參數:DataURL(type, encoderOptions) type指定轉換為base64編碼后圖片的格式,如:image/png、image/jpeg、image/webp等等,默認為image/png格式;                                     
                    q++;
                    console.log(arr)
                }
            }

        }
         //下載切的圖片
        var arr = [];
        document.getElementsByClassName('download')[0].onclick = function() {
            for (var i = 0; i < 9; i++) {
                var a = document.createElement('a');
                a.download = 'img' + (i + 1);
                a.href = arr[i];
                document.body.appendChild(a);
                a.click();
            }
        }
    </script>

</body>

</html>

看完了這篇文章,相信你對“JavaScript中canvas如何實現九宮格切圖效果”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通海县| 无极县| 环江| 马尔康县| 鄂托克旗| 乾安县| 搜索| 监利县| 齐齐哈尔市| 车致| 临海市| 蛟河市| 墨竹工卡县| 进贤县| 巴楚县| 财经| 正定县| 闻喜县| 教育| 平果县| 彝良县| 金川县| 峨眉山市| 桐梓县| 商河县| 阿城市| 博客| 永丰县| 棋牌| 九寨沟县| 尤溪县| 锦州市| 彭州市| 静安区| 内江市| 阳原县| 竹山县| 晋宁县| 定襄县| 峡江县| 仙游县|