想要在html5 canvas画布中打开一张本地图片,代码有什么问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

想要在html5 canvas画布中打开一张本地图片,代码有什么问题

2016-06-07 13:43:10 1940 1
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script type="text/javascript">
var canvas=document.getElementById("demo");
var cxt=canvas.getContext("2d");
//打开图片
function preImg(sourceId, targetId) {  
cxt.clearRect(0,0,400,400);
    if (typeof FileReader === 'undefined') {  
        alert('Your browser does not support FileReader...');  
        return;  
    }  
    var reader = new FileReader();  

    reader.onload = function(e) {  
        var img = document.getElementById(targetId); 
        var cxt=document.getElementById("demo").getContext("2d") 
        img.src = this.result;  
        img.onload=function()
   {
    cxt.drawImage(img,0,0);
   }
    }  
    reader.readAsDataURL(document.getElementById(sourceId).files[0]);  
}  
</script>
</head>

<body>

<form action="">  
    <input type="file" name="imgOne" id="imgOne" onchange="preImg(this.id,'imgPre');" />  
    <img id="imgPre" src="" style="display: block;" />    
</form> 
<canvas id="demo" width="400" height="400" style="border:1px solid red"></canvas> 
</body>
</html>
取消 提交回答
全部回答(1)
  • 小旋风柴进
    2019-07-17 19:29:53

    调整循序,script放canvas后面,要不获取不到对象

       <form action="">
            <input type="file" name="imgOne" id="imgOne" onchange="preImg(this.id,'imgPre');" />
            <img id="imgPre" src="" style="display: block;" />
        </form>
        <canvas id="demo" width="400" height="400" style="border:1px solid red"></canvas>
        <script type="text/javascript">
            var canvas = document.getElementById("demo");
            var cxt = canvas.getContext("2d");
            //打开图片
            function preImg(sourceId, targetId) {
                cxt.clearRect(0, 0, 400, 400);
                if (typeof FileReader === 'undefined') {
                    alert('Your browser does not support FileReader...');
                    return;
                }
                var reader = new FileReader();
    
                reader.onload = function (e) {
                    var img = document.getElementById(targetId);
                    var cxt = document.getElementById("demo").getContext("2d")
                    img.src = this.result;
                    img.onload = function () {
                        cxt.drawImage(img, 0, 0);
                    }
                }
                reader.readAsDataURL(document.getElementById(sourceId).files[0]);
            }
    0 0
相关问答

19

回答

【分享】如何提高网站的打开速度?

enj0y 2012-11-17 14:35:22 57007浏览量 回答数 19

1

回答

支付宝H5 下载的时候,提示 【请确保该下载文件来源安全,如需浏览,请长按网址复制后使用浏览器访问】

游客ptexzird3doe2 2019-10-14 15:29:54 69375浏览量 回答数 1

28

回答

钉钉开放平台“常见问题常见问题常见问题“重要请关注

竹梅 2015-12-03 00:39:14 93851浏览量 回答数 28

43

回答

什么是云主机,云服务器与vps有什么区别?

zhuangdengyun 2011-11-01 04:21:50 49892浏览量 回答数 43

31

回答

[@倚贤][¥20]刚学完html/css/js的新手学习servlet、jsp需要注意哪些问题?

弗洛伊德6 2018-10-27 21:52:43 146071浏览量 回答数 31

58

回答

技术入门问答集锦,涉及多种技术方向,解决新人学习困惑

管理贝贝 2016-08-03 10:13:27 52766浏览量 回答数 58

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 305691浏览量 回答数 249

13

回答

【云服务器分享】如何节省网站流量

dreamdoo 2012-10-15 10:36:09 80488浏览量 回答数 13

46

回答

H5技术百问——不懂H5你就OUT啦

yq传送门 2017-09-09 11:03:04 47443浏览量 回答数 46

3

回答

Nginx—owncloud安装记事

寒喵 2014-06-07 23:24:41 48754浏览量 回答数 3
2736
文章
6591
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载