heyiyi1117 2018-12-04 11:40 采纳率: 100%
浏览 305
已采纳

从本机上选择图片文件,怎样才能让图片到画布上?我代码是哪里出错了,在网上没搜到相关代码案例
















var img = new image();//var 声明关键字
//解决跨域问题
img.crossOrigin = "Anonymous";

//img.src="timg.jpg";
var canvas;
var ctx;
//图片加载完成触发
img.onload = function () {
var file = $("#imgForm").find("input")[0].files[0];
var reader = new FileReader();
var imgFile;
reader.onload = function (e) {
alert('文件读取完成');
imgFile = e.target.result;
console.log(imgFile);
$("#imgContent").attr('src', imgFile);
};
reader.readAsDataURL(file);

  canvas = document.getElementById("myCanvas");
  img.height = 0.4 * img.height;
  img.width = 0.4 * img.width;
  canvas.width = img.width;  
  canvas.height = img.height;  
  ctx=canvas.getContext("2d");
  ctx.drawImage(img,0,0,img.width,img.height);

}

  • 写回答

1条回答 默认 最新

  • 很倔也很天真 2018-12-04 13:22
    关注
     <input type="file" id="f" onchange="fileLoad()">
        <div>
            <canvas id="draw"></canvas>
        </div>
        <script>
            function fileLoad() {
                var f = document.getElementById('f').files[0];
                var reader = new FileReader();
                reader.onload = function(e) {
                    alert('文件读取完成');
                    var imgFile = e.target.result;
                    var img = new Image();
                    img.onload = imgLoad;
                    img.src = imgFile;
                };
                reader.readAsDataURL(f);
            }
            function imgLoad(){
                console.log('image loaded');
                var canvas = document.getElementById("draw");
                var ctx = canvas.getContext("2d");
                var height = 0.4 * this.height;
                var width = 0.4 * this.width;
                canvas.width = width;
                canvas.height = height;
                ctx.drawImage(this, 0, 0, width, height);
            }
        </script>
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?