#javascript #string #image #byte
#javascript #строка #изображение #байт
Вопрос:
У меня есть эта строка в javascript, которая представляет изображение, я пытаюсь преобразовать ее в объект изображения, чтобы показать его в html, но я не уверен, как это сделать, также я не знаю кодировку, я думаю, это просто байты?
«b’x89PNGrnx1anx00x00x00rIHDRx00x00x01,x00x00x00xa8x08x03x00x00x00mxf5#=x00x00x02OPLTExffxffxff$xa5xdexf0xedx00(7x92x00x00x00xfdxf0x0bx0cxa1xdcxbbxe0xf0%xa8xe2(7x94xf3xefx00#xa5xdfxa8xadxcfxf8xf2x00xfcxffxffx14(x8dkx6x00uxabxa8xa8xa8xd2xccx00xa9xaaxb0xe6x00x00x00x00x06xe8xe7xe6).Kx00x0cIx1d*lx9bx9dx9dx1d/x92xffxf5x00xf0x00x00x00x00Nx1f)ix00x00Hx00x00Ax00x00;xf1xf1xf1x00x00Pxffxf8x00xe9xf8xf9x08x86xbfxb6xb5x00x00x00->>>{{{x00x00Dx00x00Vxd7xd7xd5xf6xdc xe0 x97xd1xeaxe6x00xa2x9dx00xd6xcfx00xe4x1d(x00x17hxcdxcdxcax11x11x11xc8xc2x00xe6xdcx00x94x93x91x1c,x84x00rUxcb xcexcfxf6xd0xd5xf2xc2xc5xf1xb1xb8xefx91 x9bxe1 xdd xe3 Зв: cx17m x8exe3x00 x13 xe45=x00x00(JJJ x1e x1e x1eK x9d xbf … xbd xcd x88x00x00x00 x00IEND xaeB`x82′»
Комментарии:
1. это base64? это похоже на кодировку base64… необработанные байты будут равны 1 и 0, это похоже на сжатие… вероятно, base64.
Ответ №1:
попробуйте преобразовать base64 / URLEncoded с помощью этого кода, а затем выдать большой двоичный объект в canvas:
function dataURItoBlob (dataURI) {
var byteString;
if (dataURI.split(',')[0].indexOf('base64') >= 0)
byteString = atob(dataURI.split(',')[1]);
else
byteString = unescape(dataURI.split(',')[1]);
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
var ia = new Uint8Array(byteString.length);
for (var i = 0; i < byteString.length; i ) {
ia[i] = byteString.charCodeAt(i);
}
return new Blob([ia], {type:mimeString});
}
Комментарии:
1. на самом деле это не сработало, но потом я попробовал что-то еще и получил результат, в любом случае спасибо за ваш ответ
2. ОК. Рад помочь!