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

news2025/2/25 14:19:22

效果

在这里插入图片描述

示例

项目结构:

在这里插入图片描述

源码:

<!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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1031077.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于图的基础推荐方式

文章目录 1. 基于图的基础推荐方式1.1 链路预测&#xff08;Link Prediction&#xff09;1.2 什么是路径1.3 基于路径的基础链路预测1.4 图游走算法DeepWalk1.4.1 Word2Vec1.4.2 DeepWalk原理1.4.3 DeepWalk代码示例 1.5 图游走算法Node2Vec1.5.1 Node2Vec原理1.5.2 Node2Vec公…

浅谈电动汽车充电桩设计与应用研究

安科瑞 华楠 摘要&#xff1a;目前&#xff0c;随着我国社会经济的快速发展&#xff0c;我国的各个领域都取得了突破性的发展&#xff0c;尤其是在电动汽车充电桩的设计方法&#xff0c;新型的电动汽车充电桩设计已经广泛的受到了人民群众的青睐与认可&#xff0c;而这种发展前…

基于FFmpeg+SDL的视频播放器的制作

基于FFmpegSDL的视频播放器的制作 基于FFmpegSDL的视频播放器的制作实验1实验2 基于FFmpegSDL的视频播放器的制作 雷霄骅博士的课程。 课程链接&#xff1a;https://blog.csdn.net/leixiaohua1020/article/details/47068015 初学 FFmpeg&#xff0c;记录一下过程。 实验1 答…

python快速实现带界面可点击的简易计算器

这篇文章将带你探索如何使用Python创建一个直观且实用的带界面计算器。我们将深入介绍如何利用Python的图形用户界面库&#xff0c;特别是Tkinter&#xff0c;来构建一个友好的用户界面&#xff0c;让你能够轻松进行数学运算。无论你是初学者还是有一定编程经验&#xff0c;本文…

港联证券:美三大股指均收跌逾1% 热门中概股普跌

美东时间周四&#xff0c;美股三大指数接连第三日收跌。道指跌370.46点&#xff0c;跌幅为1.08%&#xff0c;报34070.42点&#xff1b;纳指跌245.14点&#xff0c;跌幅为1.82%&#xff0c;报13223.99点&#xff1b;标普500指数跌72.20点&#xff0c;跌幅为1.64%&#xff0c;报4…

qmake

今天发现一个工具:qmake 使用方法: ~/opt/atk-dlrv1126-toolchain/bin/qmake 就是生成一个makefil文件 然后就可以在该路径下make 步步积累

Java根据模版导出(ftl方式)

实际项目中经常遇到需要根据模版导出数据&#xff0c;普通一点的导出模版都挺好实现的&#xff0c;如果涉及到勾选框、表格循环的方式就比较麻烦一点&#xff0c;这篇文章主要记录一下我在项目中是如何导出word&#xff08;其中包括根据值勾选、表格循环、图片&#xff09; 一…

uni-app:点击图片进行图片旋转(可自定义旋转次数)

效果 代码 <template><view><view class"top_line"><view class"top_img"><image src"../../../static/bg/index.png" mode""></image></view><view class"top_button">…

【产品运营】如何做好B端产品规划

产品规划是基于当下掌握的多维度信息&#xff0c;为追求特定目的&#xff0c;而制定的产品资源投入计划。 产品规划是基于当下掌握的多维度信息&#xff08;客户需求、市场趋势、竞争对手、竞争策略等&#xff09;&#xff0c;为追求特定目的&#xff08;商业增长、客户满意等&…

VMware虚拟机在重启电脑后网络有问题

主机重启后再次打开虚拟机网络连接异常 重置虚拟机网络后还想用以前的IP地址配置 点击还原默认设置 点击上方的NAT模式修改下面的IP地址网段&#xff0c;再点击NAT设置将网关IP修改一下 修改完成后点击确定 打开虚拟机在虚拟机 修改IP地址 配置DNS 修改完成后点击确定即…

Vue中作用域插槽的简单使用

效果&#xff1a; 公共组件&#xff1a; <template><div class"colorTimeTemplate"><div>123</div><div class"colorTimeTemplate-upload"><slot name"uploadBox"></slot>&l…

计算机IO原理

一、中断机制 在IO处理中有2种思路&#xff0c;一种就是轮训&#xff08;polling&#xff09;机制&#xff0c;一种是中断(interrupt)机制&#xff0c;前置是一种同步的通信机制&#xff0c;不是计算机中IO采用的机制&#xff0c;我们重点来说明中断机制。 CPU停下当前的工作…

burpsuite+proxifier小程序抓包

burpsuiteproxifier小程序抓包 安装bp证书到系统 配置

mybatis/mp批量插入非自增主键数据

文章目录 前言一、mp的批量插入是假的二、真正的批量插入1.利用sql注入器处理2.采用自编码,编写xml批量执行生成内容如下: 三 问题问题描述问题原因问题解决粘贴一份,兼容集合替换原有文件 总结自增与非自增区别: 前言 mybatis/mp 在实际开发中是常用的优秀持久层框架,但是在非…

实现表格表头自定义编辑、一键导入、增加列

1.前言 本文基于vue2及elementUI的表格组件 2.效果及功能展示 3.需求背景 有时候客户急需看到需求实现的页面&#xff0c;而此时后端接口没有&#xff0c;产品原型没有&#xff0c;只能前端出马&#xff0c;画一个静态页面&#xff0c;来展示客户想要的东西&#xff0c;如果是…

P1827 [USACO3.4] 美国血统 American Heritage(前序 + 中序 生成后序)

P1827 [USACO3.4] 美国血统 American Heritage&#xff08;前序 中序 生成后序&#xff09; 一、前言 二叉树入门题。涉及到树的基本知识、树的结构、树的生成。 本文从会从结构&#xff0c;到完成到&#xff0c;优化。 二、基础知识 Ⅰ、二叉树的遍历 前序遍历&#xff…

CRM软件系统维护客户的主要方法

客户的重要性&#xff0c;相信每一个做企业的人都非常清楚。为了维护好客户&#xff0c;很多企业都使用CRM客户管理系统&#xff0c;建立“以客户为中心”的经营理念&#xff0c;提高企业客户服务水平&#xff0c;进而在提高客户满意度的同时提高企业的盈利。那么&#xff0c;企…

ubuntu、linux in window安装docker教程

1、首先进入管理员权限。 2、更新软件源。 sudo apt update 3、安装一些依赖 sudo apt install apt-transport-https ca-certificates curl software-properties-common 4、为系统添加Docker的密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-k…

28.CSS 渐变圆文本动画

效果 源码 index.html <!doctype html> <html> <head><meta charset="utf-8"><title>Glowing Gradient Circle Text Animation</title><link rel="stylesheet" href="style.css"> </head> &l…

合同被篡改,被变更,被调换风险大?君子签电子合同有效化解

纸质合同签署文件类型多&#xff0c;签署量大&#xff0c;人为干预较多&#xff0c;合同被篡改&#xff0c;被变更&#xff0c;被调换风险大&#xff0c;难以防范和避免。 请注意&#xff0c;出现以下几个情况&#xff0c;代表你已经遭遇合同“调包计”了&#xff01; 1、合…