Изображение в кодировке Base64


Я создаю надстройку с открытым поиском для Firefox/IE, и изображение должно быть закодировано в кодировке Base64, так как я могу на основе 64 кодировать значок, который у меня есть?

Я знаком только с PHP

Author: UnkwnTech, 2008-08-30

5 answers

Насколько я помню, для данных изображения есть элемент xml. Вы можете использовать этот веб-сайт для кодирования файла (используйте поле загрузки). Затем просто скопируйте и вставьте данные в XML-элемент.

Вы также можете использовать PHP для этого следующим образом:

 <?php
        $im = file_get_contents('filename.gif');
        $imdata = base64_encode($im);      
?> 

Используйте Руководство Mozilla для получения помощи в создании плагинов OpenSearch. Например, элемент значка используется следующим образом:

<img width="16" height="16">data:image/x-icon;base64,imageData</>

Где imageData - ваши данные base64.

 76
Author: Ross, 2014-04-20 08:50:25
$encoded_data = base64_encode(file_get_contents('path-to-your-image.jpg'));    
 11
Author: thefreeman, 2013-12-24 21:26:44

Мой краткий обзор rfc2397 таков:

Как только вы получите данные изображения в кодировке base64, поместите их в теги с префиксом "data:{mimetype};base64,". Это похоже на префикс, сделанный в скобках определения url() в CSS или в кавычках значения атрибута src тега img в [X]HTML. Вы можете проверить URL-адрес данных в firefox, введя строку data:image/... в поле URL-адрес и нажав клавишу ввод, она должна отображать ваше изображение.

Для фактического кодирования I думаю, нам нужно рассмотреть все ваши варианты, а не только PHP, потому что существует так много способов кодирования на основе base64.

  1. Используйте средство командной строки base64. Это часть GNU coreutils (v6+) и в значительной степени используется по умолчанию в любом Cygwin, L я n у x, GnuWin32 установите, но не те BSD, которые я пробовал. Выпуск: $ base64 imagefile.ico > imagefile.base64.txt
  2. Используйте инструмент с возможностью преобразования в base64, например Notepad++, который имеет функция в разделе плагины ->Инструменты MIME ->Кодирование base64
  3. Отправьте файл по электронной почте себе и просмотрите исходное содержимое электронной почты, скопируйте и вставьте.
  4. Используйте веб-сайт форма.

Примечание о типах mime: Я бы предпочел, чтобы вы использовали один из 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==
 8
Author: dlamblin, 2008-11-26 18:06:41

Проверьте следующий пример

<?php
    // First get your image
    $image = 'path-to-your-picture/image.jpg';
    $picture = base64_encode(file_get_contents($image));
    echo '<img width="100" height="100" src="data:image/jpg;base64,'. $picture .'" />'
    ?>
 6
Author: Imran Kabir, 2015-09-03 10:29:22

Google привел меня к этому решению (base64_encode). Надеюсь, это поможет!

 0
Author: OysterD, 2008-08-30 11:06:37