HTML5 drawImage 使用问题

使用Image遇到的问题:

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="js/jquery-1.9.1.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            $(function() {
                var jsCanv = document.getElementById("canv");
                var oCanv = jsCanv.getContext("2d");
                var img = new Image();
                img.src = "img.png";
                oCanv.drawImage(img, 220, 30); 

            })
        </script>
    </head>

    <body>
        <canvas id="canv" width="500" height="500">
            浏览器不支持
        </canvas>
    </body>

</html>

其实这种写法是有错误的,实际上只要一刷新图片就不显示出来。要想保证刷新正常显示需要在Image onload的时候重绘一次才行。测试在chrome 19下会出现的问题。

解决方案

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="js/jquery-1.9.1.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            $(function() {
                var jsCanv = document.getElementById("canv");
                var oCanv = jsCanv.getContext("2d");
                var img = new Image();
                img.src = "img.png";
                img.onload = function() {
                    oCanv.drawImage(img, 220, 30);
                }
            })
        </script>
    </head>

    <body>
        <canvas id="canv" width="500" height="500">
            浏览器不支持
        </canvas>
    </body>

</html>
时间: 2024-10-11 23:06:14

HTML5 drawImage 使用问题的相关文章

记一个html5 drawImage的问题NS_ERROR_NOT_AVAILABLE:

本地html文件,在firefox下打开,调用到drawImage报错:NS_ERROR_NOT_AVAILABLE. 不能放到桌面,换个目录就好了,路径问题. 记一个html5 drawImage的问题NS_ERROR_NOT_AVAILABLE:,布布扣,bubuko.com

HTML5 drawImage性能问题

最近做游戏发现,为了节省HTTP请求,把很多组动画放到了一张图片上,也就是传说中的雪碧图,但是用drawImage从图片上截取一部分绘制在canvas上时会非常慢. 我的图片尺寸为5000*7000 ctx.drawImage(  img,0,0,100,100,0,0,100,100 ) 居然会耗时 125 毫秒 这简直不能忍.[环境:win10 Chorme Version 44.0.2403.125 CPU:AMD A8 GPU:HD8750] 解决方案: 把需要用到的帧先截取出来,并保存

HTML5 Canvas绘图详解 drawImage() 方法 有图有真相!

步骤 1 2 3 4 5 简介 是一个新的HTML元素,这个元素可以被Script语言(通常是JavaScript)用来绘制图形.例如可以用它来画图.合成图象.或做简单的(和不那么简单的)动画. 工具/原料 html script 步骤/方法 最常见的在canvas上画图的方法是使用Image对象.所支持的来源图片格式依赖于浏览器的支持,然而,一些典型的图片格式(png,jpg,gif等)基本上都没有问题. 在下面的所有例子中,图片源将会使用这张256×256尺寸的图片. 绘制图片:在最基本的画

html5标签canvas函数drawImage使用方法

html5中标签canvas,函数drawImage(): 使用drawImage()方法绘制图像.绘图环境提供了该方法的三个不同版本.参数传递三种形式: drawImage(image,x,y):在canvas中(x,y)处绘制图片. drawImage(image,x,y,width,height):在canvas中(x,y)处绘制图片,并将其缩放到指定的宽度和高度. drawImage(image,sourceX,sourceY,sourceWidth,sourceHeight,x,y,w

[js高手之路] html5 canvas系列教程 - 图片操作(drawImage,clip,createPattern)

接着上文[js高手之路] html5 canvas系列教程 - 文本样式(strokeText,fillText,measureText,textAlign,textBaseline)继续,本文介绍的内容是canvas开发,特别是游戏中,比较常用的内容:图片处理.在游戏中的资源大多数都是加载图片. 一.canvas怎么加载图片? canvas提供3种图片加载的API调用方式. drawImage( image, dx, dy ) drawImage( image, dx, dy, dw, dh

html5 绘制图片 drawImage

要在绘图上下文中绘制图片,可以使用 drawImage 方法.该方法有三种不同的参数:? drawImage(image,dx,dy)? drawImage(image,dx,dy,dw,dh)? drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh)其中的 image 参数可以是 HTMLImageElement.HTMLCanvasElement 和HTMLVideoElement 中的任一个对象.绘制参数的含义可以参看下图: 异常:如果第一个参数不是指定的元素类型

HT for Web基于HTML5的图像操作(二)

上篇介绍了HT for Web采用HTML5 Canvas的getImageData和setImageData函数,通过颜色乘积实现的染色效果,本文将再次介绍另一种更为高效的实现方式,当然要实现的功能效果是完全一样的.这次我们依然基于HTML5技术,但采用Canvas的globalCompositeOperation属性进行各种blending效果: 各种globalCompositeOperation效果可参考https://developer.mozilla.org/en-US/docs/W

html5 canvas 详细使用教程

导航 前言 基本知识 绘制矩形 清除矩形区域 圆弧 路径 绘制线段 绘制贝塞尔曲线 线性渐变 径向渐变(发散) 图形变形(平移.旋转.缩放) 矩阵变换(图形变形的机制) 图形组合 给图形绘制阴影 绘制图像(图片平铺.裁剪.像素处理[不只图像.包括其他绘制图形]) 绘制文字 保存和恢复状态(context) 保存文件 结合setInterval制作动画 结语.demo下载   前言 <canvas></canvas>是html5出现的新标签,像所有的dom对象一样它有自己本身的属性.

HTML5项目笔记3:使用Canvas设计离线系统的Logo

HTML5 的Cavans API可以动态来展示图形.图表.图像以及动画,我们的这个离线系统中,主要用来设计Logo用的.在网页上使用Canvas的时,他会创建一块矩形区域,默认情况下宽为300像素,高为150像素,当然,可以自定义. 因为我们离线系统主要职责用于在离线的情况下的工作系统,如在上面写工作日志,工作计划,和保存项目的评估数据:在网络在线的情况下与服务器交互,并将数据保存到Server的数据库中.所以我们的这个离线系统被命名为OFLMAIL,我们就根据这个名字来设计Logo. can