HTML5 canvas标签-1 基本使用

2023-11-10

终于有空使用csdn和大家分享点自己平时学习工作时候的心德啦~


第一步 介绍下canvas的基本使用:

首先 因为canvas是html5的一个标签 所以保险起见 可以先确认下canvas是否兼容

try { 
    document.createElement("canvas").getContext("2d"); 
    console.log("canvas可以使用"); 
} catch (e) { 
    alert(e);
} 


很多基本函数 诸如moveTo(),stroke()我觉得大家可以在w3school.com上找到详细的资料。(http://blog.csdn.net/clh604/article/details/8536059 提供了大量的详细绘画教程)


因为做的主要是图像处理 所以我主要使用drawImage()还有getImageData()函数。

http://www.w3school.com.cn/jsref/met_canvasrenderingcontext2d_drawimage.asp 这里有drawImage的详细教程

http://www.w3school.com.cn/tags/canvas_getimagedata.asp 这里有getImageData的详细教程


下面我要说一下开发中碰到的坑。首先getImageData是会碰到跨域问题的。(http://www.csdn.net/article/2011-01-27/290968   -跨域的意思) 解决办法是 在header中加入(Allow-Control-Allow-Origin)。但是在安卓中,版本号在4.3以下的部分安卓手机并不支持这个协议 所以只能部署在同一个域名目录下


来个demo代码

<img id="demoPic" src="pic.jpg" style="width: 100%">
<script type="application/javascript">
    var pic = document.getElementById("demoPic"),
        canvas = document.getElementById("canvas"),
        ctx=canvas.getContext("2d"),
        imageData;
    window.onload = function(){
        var width =  pic.clientWidth,
        height = pic.clientHeight;
        canvas.setAttribute("width",pic.clientWidth);
        canvas.setAttribute("height",pic.clientHeight);
        ctx.drawImage(pic,0,0,canvas.width,canvas.height);
        pic.style.display = "none";
        canvas.style.display = "block";
        imageData = ctx.getImageData(0,0,canvas.width,canvas.height);
    }
</script>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML5 canvas标签-1 基本使用 的相关文章

随机推荐

  • idea 设置文件寻找按钮open on file

    idea寻找文件的按钮消失 解决办法
  • request failed with status code 500翻译_翻译官妈妈读大猫

    Hello 亲爱的大朋友小朋友们 又到了翻译官妈妈读大猫的时间啦 今天又是一本很好玩的小故事哦 Doing Nothing 小朋友们 你们有没有一些时候 什么也不想做 就像安安静静待着呢 不仅是你啊 小动物们也会有Doing Nothing
  • 源码分析spring容器启动销毁资源

    文章目录 一 InitializingBean 二 SmartInitializingSingleton 三 PostConstruct 四 DisposableBean 五 PreDestroy 六 BeanPostProcessor 七
  • nginx(一)下载、安装、启动、关闭(Windows)

    前言 我们现在部署项目用nginx的是比较普遍的 这里分享一些资料 1 下载安装包 官网入口 提供了 window和linux两个版本 根据自己需要来下载 我这里是window 2 打开下载的压缩包 目录如下 启动服务 双击运行nginx
  • python 常见入门问题一

    python 常见入门问题一 入门的第一个问题 TypeError can only concatenate str not int to str 在python中 中为字符串不能直接和int类型的数字相加 说到相加 C语言也有类似的cha
  • Kotlin协程视频教程,极简入门与解密

    Kotlin协程极简入门与解密视频教程已经发布到CSDN学院 https edu csdn net course detail 31728 Kotlin作为目前最为流行的编程语言之一 学Kotlin的同学们都被Kotlin的简洁的语法和它强
  • oracle replace怎么用,oracle replace()函数用法

    用法介绍 REPLACE char search string replacement string char 等待替换的字符串 search string 搜索需要替换的字符串 replacement string 替换字符串 如果rep
  • XGboost进行时间序列预测

    文章最前 我是Octopus 这个名字来源于我的中文名 章鱼 我热爱编程 热爱算法 热爱开源 所有源码在我的个人github 这博客是记录我学习的点点滴滴 如果您对 Python Java AI 算法有兴趣 可以关注我的动态 一起学习 共同
  • 跳出弹窗页面禁止滚动(PC端和手机端)

    pc端如何实现 1 当弹窗显示时 为body元素添加属性 overflow hidden 当关闭弹窗时移除该属性即可2 在弹窗的div上设置 scroll stop prevent div 你要显示的内容 div 3 出现弹窗时 为body
  • 移动应用开发---uni-app框架

    目录 一 什么是uni app 二 环境搭建 三 uni app的构造 四 uni app框架主要有五大优势 五 运行项目 六 发布小程序 发布为微信小程序 发布为支付宝小程序 一 什么是uni app uni app 是一个使用 Vue
  • 数据库查询的基本运算,关系代数

    1 关系属性的指定 投影运算 这个操作是对一个关系进行垂直分割 消去某些列 并重新安排列的顺序 为投影运算符 表示按照i1 i2 in的顺序从关系R中取出n列 并删除结果中的重复元组 组成一个新的以i1 i2 in为列顺序的n元关系 2 关
  • doker部署postgres

    doker部署postgres 参考该博文 1 安装docker sudo apt get update sudo apt get install docker 2 在docker里面安装postgres镜像 docker pull pos
  • 第14.9节 Python中使用urllib.request+BeautifulSoup获取url访问的基本信息

    利用urllib request读取url文档的内容并使用BeautifulSoup解析后 可以通过一些基本的BeautifulSoup对象输出html文档的基本信息 以博文 第14 6节 使用Python urllib request模拟
  • c++11/14之std::shared_ptr作为引用参数,普通参数

    1 c 中使用std shared ptr类型做为构造函数参数 并使用std move 初始化成员变量 使用std shared ptr类型作为形参 shared ptr会被复制 使用std move 之后 形参对象就没有内容了 inclu
  • java根据生日计算年龄工具类

    在开发中时常遇到要通过生日计算年龄的需求 这里记录一下 private static int getAgeByBirth Date birthday int age 0 try Calendar now Calendar getInstan
  • linux强制卸载mysql报错

    error Failed dependencies mysql community client x86 64 gt 8 0 11 is needed by installed mysql community server 8 0 31 1
  • html在线校验器,HTML validate HTML验证

    HTML validate是指HTML验证 它是通过与标准HTML规则进行比较的方式 分析HTML文档 标记出错误和非标准代码的处理过程 Web页面使用HTML进行渲染 而HTML本身采用了HTML规范作为其规则和标准 通过验证HTML代码
  • 驱动开发 作业 day9 9/20

    基于platform实现 head h ifndef HEAD H define HEAD H 构建LED开关的功能码 不添加ioctl第三个参数 define LED ON IO l 1 define LED OFF IO l 0 end
  • 同时安装cuda8和cuda9

    转载自 https blog csdn net lovebyz article details 80704800 为了使用tensorflow目标检测API的所有算法 所以打算升级一下CUDA版本以支持tf gpu 1 5 但原本项目都是基
  • HTML5 canvas标签-1 基本使用

    终于有空使用csdn和大家分享点自己平时学习工作时候的心德啦 第一步 介绍下canvas的基本使用 首先 因为canvas是html5的一个标签 所以保险起见 可以先确认下canvas是否兼容 try document createElem