Преобразование байтового массива в данные изображения без холста

Можно ли как-то преобразовать байтовый массив в данные изображения без использования canvas?

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

var canvas = document.getElementsByTagName("canvas")[0];
var ctx = canvas.getContext("2d");

var byteArray = [ 
    255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, // red
    0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, // green
    0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255 // blue
];

var imageData = ctx.getImageData(0, 0, 10, 3);
for(var i = 0; i < byteArray.length; i+=4){
    imageData.data[i] = byteArray[i];
    imageData.data[i+1] = byteArray[i + 1];
    imageData.data[i+2] = byteArray[i + 2];
    imageData.data[i+3] = byteArray[i + 3];
}

ctx.putImageData(imageData, 0, 0);

http://jsfiddle.net/ARTsinn/swnqS/

Обновить

Я уже пытался преобразовать его в base64-URI, но безуспешно:

'data:image/png;base64,' + btoa(String.fromCharCode.apply(this, byteArray));

Обновление 2

Чтобы отделить вопрос от проблемы

Сам холст это не так, скорее тот факт, что oldIE (и еще) не поддерживают его. ... И библиотеки вроде excanvas или flashcanvas кажутся слишком раздутыми для этого варианта использования ...

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

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