Ошибка в реализации html5 canvas для iPad drawimage ()?

После некоторой изнурительной отладки, я думаю, я обнаружил ошибку в реализации iPad Safaricanvas.drawImage(), Конкретно это перегрузка:

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 иногда забывает разрезать изображение и просто уменьшает масштаб всего изображения. Это происходит случайным образом, но я смог последовательно воспроизводить его на iPad после очистки кэша сафари. Вот код:

<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Вот.

Эта ошибка, кажется, не существует ни в одном другом браузере, включая настольный Safari. Это также, кажется, уйдет, если вы обновите страницу на iPad.

Я делаю что-то не так сdrawImage()?

Может кто-нибудь выяснить, почему это происходит, и если есть определенные значения, которых я мог бы просто избежать, чтобы этого не произошло ... или какой-то другой обходной путь?

Ответы на вопрос(1)

Ваш ответ на вопрос