Я создаю надстройку открытого поиска для Firefox/IE, и изображение должно быть закодировано в Base64, так как я могу закодировать в base64 иконку, которая у меня есть?
Я знаком только с PHP
Я создаю надстройку открытого поиска для Firefox/IE, и изображение должно быть закодировано в Base64, так как я могу закодировать в base64 иконку, которая у меня есть?
Я знаком только с PHP
Насколько я помню, для данных изображения есть элемент xml. Вы можете использовать этот веб-сайт для кодирования файла (используйте поле загрузки) . Затем просто скопируйте и вставьте данные в элемент XML.
Вы также можете использовать PHP, чтобы сделать это так:
<?php
$im = file_get_contents('filename.gif');
$imdata = base64_encode($im);
?>
Воспользуйтесь руководством Mozilla, чтобы получить помощь по созданию подключаемых модулей OpenSearch. Например, элемент icon используется так:
<img width="16" height="16">data:image/x-icon;base64,imageData</>
Где imageData
— ваши данные base64.
$im
это resource
и я получаю сообщение об ошибке base64_encode() expects parameter 1 to be string, resource given
- person Steve Robbins; 12.04.2012
<img src="data:image/x-icon;base64,imageData" width="16" height="16">
Где imageData
ваши данные base64 работали, чтобы показать это для меня, я в Chrome
- person Joshua G; 28.01.2014
Мой краткий обзор rfc2397:
После того, как вы получили данные изображения в кодировке base64, поместите их в теги ‹Image>‹/Image> с префиксом «data:{mimetype};base64,
», это похоже на префикс, сделанный в скобках определения url()
в CSS или в цитируемом значении src
атрибут тега img
в [X]HTML. Вы можете проверить URL-адрес данных в Firefox, поместив строку data:image/...
в поле URL-адреса и нажав клавишу ввода, она должна показать ваше изображение.
Для фактического кодирования, я думаю, нам нужно просмотреть все ваши варианты, а не только PHP, потому что есть так много способов кодировать что-то в base64.
base64
. Он является частью GNU coreutils (v6+) и в значительной степени используется по умолчанию в любом Cygwin, Linux, GnuWin32, но не BSD, которые я пробовал. Выпуск: $ base64 imagefile.ico > imagefile.base64.txt
Примечание о типах пантомимы: я бы предпочел, чтобы вы использовали один из image/png
image/jpeg
или image/gif
, так как я не могу найти популярный image/x-icon
. Это должно быть image/vnd.microsoft.icon
? Кроме того, другие форматы намного короче.
сравните 265 байт против 1150 байт:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAVFBMVEWcZjTcViTMuqT8/vzcYjTkhhTkljT87tz03sRkZmS8mnT03tT89vTsvoTk1sz86uTkekzkjmzkwpT01rTsmnzsplTUwqz89uy0jmzsrmTknkT0zqT3X4fRAAAAbklEQVR4XnXOVw6FIBBAUafQsZfX9r/PB8JoTPT+QE4o01AtMoS8HkALcH8BGmGIAvaXLw0wCqxKz0Q9w1LBfFSiJBzljVerlbYhlBO4dZHM/F3llybncbIC6N+70Q7OlUm7DdO+gKs9gyRwdgd/LOcGXHzLN5gAAAAASUVORK5CYII=
data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAD/////ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv///////////2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb///////////9mZmb/ZmZm//////////////////////////////////////////////////////9mZmb/ZmZm////////////ZmZm/2ZmZv//////ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv//////ZmZm/2ZmZv///////////2ZmZv9mZmb//////2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb//////2ZmZv9mZmb///////////9mZmb/ZmZm////////////////////////////8fX4/8nW5P+twtb/oLjP//////9mZmb/ZmZm////////////////////////////oLjP/3eZu/9pj7T/M2aZ/zNmmf8zZpn/M2aZ/zNmmf///////////////////////////////////////////zNmmf8zZpn/M2aZ/zNmmf8zZpn/d5m7/6C4z/+WwuH/wN/3//////////////////////////////////////+guM//rcLW/8nW5P/x9fj//////9/v+/+w1/X/QZ7m/1Cm6P//////////////////////////////////////////////////////7/f9/4C+7v8xluT/EYbg/zGW5P/A3/f/0933/9Pd9//////////////////////////////////f7/v/YK7q/xGG4P8RhuD/MZbk/7DX9f//////4uj6/zJh2/8yYdv/8PT8////////////////////////////UKbo/xGG4P8xluT/sNf1////////////4uj6/zJh2/8jVtj/e5ro/////////////////////////////////8Df9/+gz/P/////////////////8PT8/0944P8jVtj/bI7l/////////////////////////////////////////////////////////////////2yO5f8jVtj/T3jg//D0/P///////////////////////////////////////////////////////////3ua6P8jVtj/MmHb/+Lo+v////////////////////////////////////////////////////////////D0/P8yYdv/I1bY/9Pd9///////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
Проверьте следующий пример:
// First get your image
$imgPath = 'path-to-your-picture/image.jpg';
$img = base64_encode(file_get_contents($imgPath));
echo '<img width="100" height="100" src="data:image/jpg;base64,'. $img .'" />'
Google привел меня к этому решению (base64_encode). Надеюсь это поможет!