canvas绘制图片

news/2024/11/17 22:27:56/

原图:

在这里插入图片描述效果图:
在这里插入图片描述

1.可以在 canvas 上直接绘制图片

<canvas id="cvs_10" width="300" height="150"> 你的浏览器不支持 canvas,请升级你的浏览器。</canvas><button type="button" onclick="draw_image()">点击</button><script type="text/javascript">function draw_image(){//var canvas = document.getElementById("cvs_10")//检测支持性if(!canvas.getContext("2d")) return;//获得 2d 上下文对象var ctx = canvas.getContext("2d");var img = new Image();//创建img元素img.onload = function(){// 参数 1:要绘制的 img   参数 2、3:绘制的 img 在 canvas 中的坐标 参数4,5是width,heightctx.drawImage(img,10,10,300,150);ctx.setLineDash([5,5])ctx.strokeRect(10,10,300,150)// ctx.fillRect(10,10,100,100)}img.src = "./img/11.jpg";//设置图片源地址}或者:<script type="text/javascript">var img = new Image();//创建img元素img.onload = function(){draw_image()}img.src = "./img/11.jpg";//设置图片源地址function draw_image(){//var canvas = document.getElementById("cvs_10")//检测支持性if(!canvas.getContext("2d")) return;//获得 2d 上下文对象var  ctx = canvas.getContext("2d");// 参数 1:要绘制的 img   参数 2、3:绘制的 img 在 canvas 中的坐标 参数4,5是width,heightctx.drawImage(img,10,10,300,150);ctx.setLineDash([5,5])ctx.strokeRect(10,10,300,150)// ctx.fillRect(10,10,100,100)}</script>

2.绘制 img 标签元素中的图片
在这里插入图片描述

<p>原图</p><div><img src="./img/12.jpg" width="600" height="200"  id="imgPt" ></div><p>画布</p><canvas id="cvs_11" width="600" height="300">你的浏览器不支持 canvas,请升级你的浏览器</canvas><script type="text/javascript">function draw_image(){//var canvas = document.getElementById("cvs_11")//检测支持性if(!canvas.getContext("2d")) return;//获得 2d 上下文对象ctx = canvas.getContext("2d");//var img = document.getElementById("imgPt")var img = document.querySelector("img");ctx.drawImage(img, 0, 0);}document.querySelector("img").onclick = function (){draw_image();}</script>

注意:考虑到图片是从网络加载,如果 drawImage 的时候图片还没有完全加载完成,则什么都不做,个别浏览器会抛异常。所以我们应该保证在 img 绘制完成之后再 drawImage。


http://www.ppmy.cn/news/582738.html

相关文章

ps风景画制作步骤

ps制作风景画 打开照片&#xff0c;并复制图层。执行 < 滤镜 - 风格化 - 查找边缘 >&#xff0c;将山水画的边缘提取出来。执行 < 图像 -调整 -去色 >,将图片的彩色去掉了。执行 < 图像 - 调整 -色阶 > ,设置 输入色阶 分别为 136、1.0、255&#xff0c;确定…

canvas 绘制图片

前面我们了解了canvas的一些基本使用方法&#xff0c;在canvas中我们还可以在canvas中直接绘制图片&#xff0c;在canvas中绘制图片主要使用到drawImage方法 一&#xff1a;drawImage方法参数有三中情况 1&#xff1a;三个参数 ctx.drawImage(image,dx,dy) image&#xff1…

【自然语言处理】COLD:中文攻击性言论检测数据集

COLD&#xff1a;A Benchmark for Chinese Offensive Language Detection 文章目录 COLD&#xff1a;A Benchmark for Chinese Offensive Language Detection1 论文出处2 背景2.1 背景介绍2.2 针对问题2.3 创新点 3 数据集构建3.1 数据源3.2 效率改进3.3 数据集分析 4 实验设计…

「缤纷色彩的饼状图」:通过使用matplotlib库绘制饼状图,让读者期待在这个色彩缤纷的图表中探索数据的美丽。

嘿&#xff0c;大家好&#xff01;今天我要带你们探索一个有趣的话题&#xff1a;使用matplotlib库绘制饼状图。虽然这听起来可能有些复杂&#xff0c;但我会用轻松幽默的语言给大家讲解&#xff01;准备好了吗&#xff1f;让我们开始吧&#xff01; 首先&#xff0c;我们需要导…

佩戴舒适度极好的蓝牙耳机推荐,五款佩戴舒适的蓝牙耳机推荐

​说到真无线蓝牙耳机&#xff0c;很多人会问音质表现好不好&#xff0c;佩戴上耳舒适性怎么样&#xff1f;等等问题。面对这些常会问的问题&#xff0c;我总结出来&#xff0c;也整理出来几款质量好、佩戴舒适的蓝牙耳机给大家&#xff0c;来看看有哪些。 一、南卡OE PRO开放…

1417

#include<iostream> using namespace std; int main() {int x,y;cin>>x>>y;int d y/x;cout<<d*5;return 0; }

力扣1713.得到子序列最少的操作次数

题目如下 https://leetcode-cn.com/problems/minimum-operations-to-make-a-subsequence/ 题目解析 简单来看会发现这道题目是求最长公共子序列&#xff0c;但是求最长公共子序列的时间复杂度会很高&#xff0c;其实我们可以将这个问题转化为最长上升子序列的解法。根据tar…

codeforces 1713 problem C Build Permutation(思维构造+数论)

input: 3 3 4 7 output: 1 0 2 0 3 2 1 1 0 2 6 5 4 3 题目大意&#xff1a;给我们一个数n&#xff0c;让我们找出一个0~n-1的全排列&#xff0c;a[0]~a[n-1],0<a[i]<n&#xff0c;并且每个数都满足a[i]i为某个数的平方&#xff0c;让我们输出这个排列&#xff0c…