Bug在iPad的html5 canvas drawimage()实现? [英] Bug in iPad's html5 canvas drawimage() implementation?

查看:537
本文介绍了Bug在iPad的html5 canvas drawimage()实现?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

经过一些艰苦的调试,我想我发现了一个bug在iPad Safari的实现 canvas.drawImage()。特别是这个重载:

After some grueling debugging, I think I have found a bug in the iPad Safari's implementation of canvas.drawImage(). Specifically this overload:

void drawImage(in HTMLImageElement image, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh);

当切片图像并缩放时,Safari似乎有时会忘记切分图像缩放整个图像。这是随机发生的,但我已经能够清除safari的缓存后,在iPad上一直重现它。这是代码:

When slicing an image and scaling it down, it seems that Safari sometimes forgets to slice the image and simply scales the entire image down. This happens on a random basis, but I have been able reproduce it on the iPad consistently after clearing safari's cache. Here is the code:

<script>
draw = function() {
  var ctx = document.getElementById('cc').getContext('2d');  
  var timg = new Image()
  timg.onload = function() {
    ctx.fillStyle = 'rgb(100,100,100)';
    ctx.fillRect(0,0,256,256);
    ctx.drawImage(timg, 0,0, 128, 128, 0, 0, 63,63);                
    ctx.drawImage(timg, 0,0, 128, 128, 128, 0, 65,65);              
  };
  timg.src = "http://amirshimoni.com/ipadbug1/1234.jpg";
};
</script>
<body onload="draw();">
<canvas id="cc" width="256" height="128"></canvas>
</body>

您可以运行此处或查看iPad的输出此处 a>。

You can run it here or see the output from the iPad here.

此错误似乎不存在于任何其他浏览器上,包括桌面Safari。

This bug doesn't seem to exist on any other browser, including desktop Safari. It also seems to go away if you refresh the page on the iPad.

我做错了 drawImage()

任何人都能知道为什么会发生这种情况,如果有特定的值,我可以简单地避免,所以不会发生...或其他

Can anyone figure out why this is happening, and if there are specific values that I could simply avoid so it doesn't happen... or some other workaround?

推荐答案

这个错误似乎已在iOS 4.2中修复。至少,我看不到它发生了。

This bug seems to have been fixed in iOS 4.2. At least, I don't see it happening any more.

这篇关于Bug在iPad的html5 canvas drawimage()实现?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆