• JavaScript - canvas - 选择部分区域的图像数据


    效果

    在这里插入图片描述

    示例

    项目结构

    在这里插入图片描述

    源码

    DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>选择部分区域的图像数据title>
            <style type="text/css">
                div {
                    width: 200px;
                    height: 200px;
                    display: inline-block;
                }
            style>
        head>
        <body>
            <canvas id="canvas">canvas>
            <canvas id="piece" width="200" height="200" style="border: 1px solid black;">canvas>
            
            <script type="text/javascript">
                window.onload = (event) => {
                    // console.log(event);
                    main();
                }
                
                function main() {
                    const canvas = document.querySelector("#canvas");
                    const canvasContext = canvas.getContext("2d");
                    
                    const canvasPiece = document.querySelector("#piece");
                    const canvasPieceContext = canvasPiece.getContext("2d");
                    
                    // Load image
                    const image = new Image();
                    image.onload = (event) => {
                        // console.log(event)
                        canvas.width = image.width;
                        canvas.height = image.height;
                        canvasContext.drawImage(image, 0, 0)
                    }
                    image.src = "img/transformers.jpg";
                    
                    // Hovered
                    canvas.onmousemove = (event) => {
                        // console.log(event);
                        const x = event.layerX;
                        const y = event.layerY;
                        
                        {
                            // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/getImageData
                            const imageData = canvasContext.getImageData((x - 100), (y - 100), 200, 200);
                            console.log(imageData);
                            // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/putImageData
                            canvasPieceContext.putImageData(imageData, 0, 0);
                        }
                    }
                }
            script>
        body>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
  • 相关阅读:
    【Kettle】Kettle部署与运行
    javascript复习之旅 9.1 从0到1认识`call apply`
    redis 6.0.5 linux详细安装步骤和测试
    跟艾文学编程《Python基础》(1)Python 基础入门
    Spring 事务失效的八种场景
    springboot悠悠转二手网站毕业设计源码181134
    qt颜色与字符串相互转换
    JavaWeb---XML
    QT Day3
    redis缓存一致性以及解决方案
  • 原文地址:https://blog.csdn.net/qq_29761395/article/details/133160684