Создание строковых представлений изображений, которые можно встраивать в HTML или CSS.
JIMP - это программа обработки изображений JavaScript, которая на самом деле является пакетом NPM, и одной из многих ее функций является возможность создавать строку Base 64 из файла изображения. Это имеет различные применения (некоторые гнусные…), и в этом посте я продемонстрирую встраивание графики в кодировке Base 64 как img src
в HTML-документ. Это полезно для небольших изображений, таких как логотипы или изображения кнопок, чтобы уменьшить количество HTTP-запросов, и хотя я использую HTML, строку Base 64 также можно использовать в CSS.
Как вы, вероятно, знаете, основание 10 (десятичное) использует цифры 0–9, а основание 16 (шестнадцатеричное) использует цифры 0–9 плюс буквы A-F. Base 64, конечно, требует 64 различных символа и использует 26 букв верхнего регистра, 26 букв нижнего регистра, цифры 0–9, а также символы плюса и косой черты, а также знак равенства для заполнения. (Есть также несколько других менее распространенных стандартов.) Поэтому любой код, преобразующий файл, поток или буфер в Base 64, предоставит строку, содержащую только символы ASCII, которые можно безопасно передавать с использованием любого протокола.
Для этого проекта я напишу пару простых функций, которые открывают файл изображения, получают его кодировку Base 64 и затем вставляют его в документ HTML. Вы можете получить исходный код из репозитория Github.
Полная документация для JIMP находится на https://www.npmjs.com/package/jimp, и вы можете установить ее с помощью:
npm install --save jimp
Это исходный код для создания изображения base 64 и встраивания его в файл HTML.
В функции openLogo
мы читаем файл изображения (он включен в исходный код), а затем вызываем getBase64Async
с типом MIME Jimp.AUTO
, чтобы сохранить тип файла исходного изображения. Результирующая строка Base 64 затем передается в base64ToPage
.
Функция base64ToPage
открывает существующий файл HTML, заменяет {{logo}}
строкой Base 64 и затем сохраняет файл. Это очень грубое приближение того, что выполняют движки шаблонов, такие как Mustache и Handlebars, и это просто быстрый, но грязный способ переноса изображения Base 64 на веб-страницу, а не код производственного качества.
В реальной ситуации, самый простой способ использовать сгенерированное JIMP изображение base 64, вероятно, - записать его в текстовый файл, а затем скопировать / вставить в свой код. Создание образа base 64 занимает довольно много времени даже для очень маленькой графики, поэтому это не то, что можно сделать на лету для каждого HTTP-запроса - это строго разовый процесс для каждого изображения.
Теперь давайте запустим код.
node base64image.js
Если вы откроете base64image.htm в своем браузере, вы увидите страницу, содержащую этот логотип.