Если у меня есть массив данных пикселей в JavaScript, есть ли хороший способ отобразить его на странице HTML?

  • В последних версиях Safari и Firefox я могу создать элемент <canvas> и использовать putImageData для отображения пикселей, но в идеале решение может работать и на более старых версиях, и, что более важно, работать в Internet Explorer.
  • Другое решение, которое кажется более осязаемым, может заключаться в кодировании пикселей в стандартный формат изображения и создании URI data: с пикселями и в качестве src элемента <img>. К сожалению, кажется, что большинство форматов изображений являются сложными, и мне трудно найти простой, который может выполнить эту работу (BMP выглядит как возможность, но не работает в Safari). Кроме того, версии Internet Explorer до IE 8 вообще не поддерживают URI data:.

Я сомневаюсь, что они существуют, но кто-нибудь знает библиотеки изображений для JavaScript, которые могут генерировать изображения в стандартном формате? Есть ли способ реплицировать функциональность URI data: в IE 7?

5
Sophie Alpert 23 Июн 2010 в 04:14

4 ответа

Лучший ответ

Работает ли формат PNG для ваших целей? Если так, то PNGlib выглядит довольно привлекательно хорошо.

Кроме того, JS JPEG Encoder выглядит хорошо, но принимает в качестве входных данных возвращаемое значение Canvas. getImageData ( ) .

Не знаю, что вы можете сделать, чтобы поддержать IE 7, хотя.

2
Trochoid 23 Июн 2010 в 13:22

Проверь себя Рафаэль - http://raphaeljs.com/

Хотя это может быть медленным и не предназначено для использования библиотеки, она будет работать с поддержкой интересующих вас браузеров.

0
Jamie Wong 23 Июн 2010 в 00:18

Canvas - хорошее решение, для поддержки кроссбраузерности см. Превосходное руководство Марка Пилигрима:

http://diveintohtml5.ep.io/canvas.html В частности, "Как насчет IE?" раздел и использование explorercanvas. Вы можете использовать и создавать данные: URI в форматах png и jpeg с canvas.

3
DanBeale 8 Окт 2011 в 21:51

Может быть, посмотрите fxCanvas http://burzak.com/pro/fxcanvas/

Я думаю, что они реализуют даже «putImageData» в IE, используя Flash.

-1
Drew LeSueur 30 Июн 2010 в 08:14