Нарисуйте изображение из массивов данных пикселей
Если у меня есть массив данных пикселей в JavaScript, есть ли хороший способ отобразить его на странице HTML?
- На последних версиях Safari и Firefox я могу сделать
<canvas>
элемент и использованиеputImageData
для отображения пикселей, но в идеале решение может работать и на более старых версиях, и, что более важно, работать на Internet Explorer. - Другое решение, которое кажется более осязаемым, может заключаться в кодировании пикселей в стандартный формат изображения и создании
data:
URI с пикселями и установите его какsrc
из<img>
элемент. К сожалению, кажется, что большинство форматов изображений являются сложными, и мне трудно найти простой, который может выполнить эту работу (BMP выглядит как возможность, но не работает в Safari). Кроме того, версии Internet Explorer до IE 8 не поддерживаютdata:
URI вообще.
Я сомневаюсь, что они существуют, но кто-нибудь знает библиотеки изображений для JavaScript, которые могут генерировать изображения в стандартном формате? Есть ли способ повторить функциональность data:
URI в IE 7?
4 ответа
Работает ли формат PNG для ваших целей? Если так, то PNGlib выглядит довольно хорошо.
Кроме того, JS JPEG Encoder выглядит хорошо, но он принимает в качестве входных данных возвращаемое значение Canvas.getImageData().
Не знаю, что вы можете сделать, чтобы поддержать IE 7, хотя.
Canvas - это хорошее решение, для поддержки кроссбраузерности см. Превосходное руководство Марка Пилигрима:
http://diveintohtml5.ep.io/canvas.html частности, "А как насчет IE?" раздел и использование explorercanvas. Вы можете использовать и создавать данные: URI в форматах png и jpeg с помощью canvas.
Проверь себя Рафаэль - http://raphaeljs.com/
Хотя это может быть медленным и не предназначено для использования библиотеки, она будет работать с поддержкой интересующих вас браузеров.
Может быть, проверить fxCanvas http://burzak.com/pro/fxcanvas/
Я думаю, что они реализуют даже 'putImageData' в IE, используя Flash.