Javascript加载随机图像

时间:2015-06-29 15:41:03

标签: javascript image file-upload

我想创建一个javascript函数,在调用函数da_image时将加载一个随机图像。我希望图像加载到我设置的画布上。我的代码中是否有明显的错误?目前没有显示任何内容。

var images = [
                    "http://circlesfordialogue.com/wp-content/uploads/2014/12/LAURA-LET%C2%B4S-CIRCLE-UP-2014-12-08.jpg",
                    "http://mathworld.wolfram.com/images/eps-gif/ConcentricCircles_1000.gif", 
                    "http://www.charlespetzold.com/blog/2012/12/BezierCircleFigure3.png"

            ];
            function da_image(){
                var file = images[0]; 
                var reader = new FileReader();
                reader.onload = function(){
                        var img = new Image();
                        img.src = reader.result;
                        img.onerror = function(){
                            reset_canvas();
                            o.font = '30px sans-serif'
                            o.fillText('Error: Invalid Image ' + file.name, 50, 100);
                        }
                        img.onload = function(){
                            document.getElementById("text").innerHTML = 'Recognizing Text... This may take a while...'
                            reset_canvas();
                            var rat = Math.min(c.width / img.width, c.height / img.height);
                            o.drawImage(img, 0, 0, img.width * rat, img.height * rat)
                            var tmp = document.createElement('canvas')
                            tmp.width = img.width;
                            tmp.height = img.height;
                            var ctx = tmp.getContext('2d')
                            ctx.drawImage(img, 0, 0)
                            var image_data = ctx.getImageData(0, 0, tmp.width, tmp.height);
                            runOCR(image_data, true)
                        }

                    }

1 个答案:

答案 0 :(得分:0)

加载图像时会触发onload处理程序。当您设置onload处理程序时已加载图像,它不会被触发。

因此,在设置.src函数后,请始终设置.onload属性。