Мобильный Safari отображает масштабирование на холсте?
Я пытаюсь отобразить локальное изображение, загруженное объектом FileReader на холсте в Safari Mobile на iOS6. Но каждое изображение с URL-адресом данных отображается в вертикальном масштабе. Это жук? В Chrome он отображается правильно.
скриншот из iOS6 (выше: холст, ниже: оригинальное изображение)
есть ли способ обойти эту ошибку? Это жук?
Если Я измените размер изображения на устройстве сначала с помощью приложения "PhotoWizard" (масштабируйте его до ширины 720px), холст отображает его правильно. Кажется, проблема с размером изображения или изображений, сделанных с помощью приложения камеры:
попробовали предложения Джейк Арчибальд, выглядит немного лучше, но по-прежнему получает вертикально масштабируется:
Я попробовал это сегодня на Galaxy Nexus с установленным Android 4.1.1. Работает так, как ожидалось, поэтому это действительно похоже на проблему мобильного Safari:
2 ответов
Это может быть связано с ограничением, которое находится в ограничении ресурсов iOS Safari. Согласно следующей ссылке, файлы JPEG более 2M пикселей будут объединены.
Я сомневаюсь, что canvas в Safari не может справиться с этим правильно подвыборки.
Я создал обходной путь, определяющий, является ли изображение вложенным или нет, и растягивая его до исходного размера.
var cnv = document.createElement("canvas");
ctx = cnv.getContext("2d");
image = new Image();
image.src = src;
image.onload = function() {
var size = scaleSizeRatio(image.width,image.height);
cnv.width = size[0];
cnv.height = size[1];
ctx.drawImage(image, 0, 0, image.width, image.height, 0, 0, image.width , image.height);
var div = container;
div.appendChild(cnv);
}
ctx.drawImage (image, 0, 0, image.ширина, изображение.высота, 0, 0, изображения.ширина, изображение.высота); эта функция исправит сжимать вопрос в iPod больше чем 3Mb. Сначала, если ваше изображение больше 3 мб, вычислите масштабированную ширину и высоту изображения и установите эту ширину и высоту на холст. Затем вызовите функцию drawImage. Это даст окончательный образ того, что вы ожидали...