Javascript преобразует байтовую строку в изображение

#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. ОК. Рад помочь!