zoukankan      html  css  js  c++  java
  • Canvas中 drawImage绘制图片不显示

    在学习 html5中的 Canvas.drawImage时写了如下代码:

    <!doctype html>
    <html>
        <head><title>研究</title></head>
        <body>
            <canvas id="canvas" style="500px;height:400px; border:1px solid red"></canvas>
            <img id="img" src="ggg.jpg"  hidden />
        </body>
        <Script type="text/javascript">
            var cxt = document.getElementById("canvas").getContext("2d");
            var imgElement = document.getElementById("img");
           cxt.drawImage(imgElement, 10, 10, 200, 200);
        </Script>
    </html>
    

    在charome和firefox中都无法显示绘制的图片效果。后来查询了很多资料,才知道canvas在绘制图片的时候要等到img的图片完全加载到客户端后才可以绘制正确,现在的代码中直接是绘制图片,图片还没加载完就开始在绘制图片了,把代码稍微改下:

      

    <!doctype html>
    <html>
        <head><title>研究</title></head>
        <body>
            <canvas id="canvas" style="500px;height:400px; border:1px solid red"></canvas>
            <img id="img" src="ggg.jpg"  hidden />
        </body>
        <Script type="text/javascript">
            var cxt = document.getElementById("canvas").getContext("2d");
            var imgElement = document.getElementById("img");
           setTimeout(function () { cxt.drawImage(imgElement, 10, 10, 200, 200); },0);
        </Script>
    </html>
    

      或者

    <!doctype html>
    <html>
        <head><title>研究</title></head>
        <body>
            <canvas id="canvas" style="500px;height:400px; border:1px solid red"></canvas>
            <img id="img" src="ggg.jpg"  hidden />
        </body>
        <Script type="text/javascript">
            var cxt = document.getElementById("canvas").getContext("2d");
            var imgElement = document.getElementById("img");
            imgElement.onload = function () { cxt.drawImage(imgElement, 10, 10, 200, 200); };
        </Script>
    </html>
    

      就可以正常显示绘制的图片了。

  • 相关阅读:
    centos6.5 系统乱码解决 i18n --摘自http://blog.csdn.net/yangkai_hudong/article/details/19033393
    openssl pem转cer
    nginx 重装添加http_ssl_module模块
    ios 利用airprint实现无线打印(配合普通打印机)
    centos nginx server_name 配置域名访问规则
    MySQL Innodb数据库性能实践——热点数据性能
    jQuery中的DOM操作
    C++函数学习笔记
    jQuery选择器容易忽视的小知识大问题
    写给自己的话
  • 原文地址:https://www.cnblogs.com/huaan011/p/4585735.html
Copyright © 2011-2022 走看看