2016-03-18 31 views
0

我试图在画布中绘制图像。这在Firefox,但无法在Chrome 49Chrome并未在画布中绘制特定的jpg图像

context.drawImage(backgroundImage, 0, 0); 

的jsfiddle:https://jsfiddle.net/kp5otnyu/3/

图片链接:http://www.boardgame-online.com/img/stackoverflow_chrome_test.jpg

东西似乎是错误的图像。我们尝试在另一个绘制的jpg中处理图像,然后运行。但这张图片有什么问题?

+1

我使用的是Chrome 51,它可以在我的浏览器中使用。 –

+0

这很有趣。我找不到有关此问题的错误报告。 – Anorionil

+0

绝对是Chrome 49中的一个bug。可以在该版本的多个设备上进行再现。值得注意的是:图像在标签中正确加载。如果在代码执行之前加载到标记中,它将起作用。但是,当它在onload事件后直接加载到时,Chrome会认为图像是空白的。如果之后将它放入标记中,那也是空白的。 Chrome在49版本中确实搞砸了。原因是什么?未知。 – Dysprosium

回答

0

这个问题在Chrome 50中得到解决。当我在更新的浏览器,图像显示打开的jsfiddle。

0

编辑:这是不是一个答案,所有的欢呼@kaiido

工作例如:

var backgroundImage = new Image(); 
 

 
var canvas = document.createElement("canvas"); 
 
var context = canvas.getContext("2d"); 
 
canvas.width = 500; 
 
canvas.height = 100; 
 
\t \t \t \t 
 
backgroundImage.onload = function(){ 
 
\t context.clearRect(0, 0, 300, 300); 
 
\t context.drawImage(backgroundImage, 0, 0); 
 
} 
 
backgroundImage.src = "http://www.boardgame-online.com/img/stackoverflow_chrome_test.jpg"; 
 

 
$("#test").append(canvas);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
 
<div id="test"> 
 

 
</div>

不起作用例如:

var backgroundImage = new Image(); 
 

 
var canvas = document.createElement("canvas"); 
 
var context = canvas.getContext("2d"); 
 
canvas.width = 400; 
 
canvas.height = 400; 
 
\t \t \t \t 
 
backgroundImage.onload = function(){ 
 
\t context.clearRect(0, 0, 300, 300); 
 
\t context.drawImage(backgroundImage, 0, 0); 
 
} 
 
backgroundImage.src = "http://www.boardgame-online.com/img/stackoverflow_chrome_test.jpg"; 
 

 
$("#test").append(canvas);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
 
<div id="test"> 
 

 
</div>

+0

没有从[http://jsfiddle.net/kp5otnyu/1/](http://jsfiddle.net/kp5otnyu/1/)(http://jsfiddle.net/kp5otnyu/1/)执行相同的操作,问题在别处: – Kaiido

+0

为我们工作也与stacksnippet起源...尝试我的评论中的链接。 – Kaiido

+0

是的,它不工作,所以它不是一个铬问题,它是一个jsfiddle策略,如果你可以用https访问图像,你可以测试它。 – SilentTremor