dmc1989
@dmc1989

Как узнать кодировку зашифрованного изображения и корректная ли она?

Пытаюсь сделать возможность получать доступ к иконке аудио файла, но полученная картинка закодирована. На base64 не похоже, а в интернете похожего не нашел( Может ето даже не картинка?
Получаю, вроде, все нужные данные
{ title: 'Название песни',
  artist: [ 'Певец' ],
  albumartist: [ 'Певец' ],
  album: 'Тут альбом ',
  year: '2015',
  track: { no: 96, of: 114 },
  genre: [ 'Тут жанр' ],
  disk: { no: 6, of: 6 },
  ...

Код:
var parser = mm(fs.createReadStream('Путь к аудио'), function (err, metadata) {
    if (err) throw err;

    console.log(metadata.picture);
});

Выводит следующее:
{ format: 'jpg',
  data: <Buffer ff d8 ff e1 00 a1 45 78 69 66 00 00 49 49 2a 00 08 00 00 00 05 00 12 01 03 00 01 00 00 00 01 00 00 00 31 01 02 00 0d 00 00 00 4a 00 00 00 32 01 02 00 ... > }

Ето вообще закодированное изображение? если да, то как его раскодировать для использования в дальнейшей привязки к css?
Заранее спасибо
  • Вопрос задан
  • 534 просмотра
Решения вопроса 1
dmc1989
@dmc1989 Автор вопроса
Данный буфер можно раскодировать следующим образом:
new Buffer(metadata.picture[0].data).toString('base64')

Буфер:
<Buffer ff d8 ff e1 00 a1 45 78 69 66 00 00 49 00 08 00 00 4a 00 00 00 32 01 02 00 ... >

Для вставки в css:
"data:image/" + picture.format + ";base64," + new Buffer(picture.data).toString('base64');

Использовался - npm musicmetadata
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
15432
@15432
Системный программист ^_^
Обычное шестнадцатеричное представление файла.
Просто байты, написанные текстом.
Вот эти FF D8 FF ... перевести в данные вам надо. (ну или это логер так их печатает, а на самом деле оно и так в нужном виде)
FF D8 это точно начало заголовка JPG.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы