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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
65
0
136 486
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

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

да, я знаю, как его кодировать, но как получить там только данные изображения для его кодирования.

UnkwnTech 30.08.2008 15:07
Ответ принят как подходящий

Насколько я помню, для данных изображения есть элемент 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.

base64_encode в этом случае будет кодировать только "дескриптор ресурса" изображения, я полагаю, если вообще что-нибудь. Вам нужно будет прочитать фактическое содержимое файла. Однако простое использование этого веб-сайта кодировщика base64 должно работать.

Paul Fisher 26.11.2008 21:19

У меня это совсем не работает. $im - это resource, и я получаю сообщение об ошибке base64_encode() expects parameter 1 to be string, resource given.

Steve Robbins 12.04.2012 03:08

Вышеупомянутые комментарии относятся к предыдущему редактированию, Хакре исправил мою ошибку. @stevether теперь должно работать.

Ross 12.04.2012 04:24

<img src = "data:image/x-icon;base64,imageData" width = "16" height = "16"> Где imageData - это ваши данные base64, которые показывали мне, я нахожусь в Chrome

Joshua G 28.01.2014 05:56

Мой синопсис rfc2397:

Once you've got your base64 encoded image data put it inside the теги с префиксом «data:{mimetype};base64,», это похоже на префикс, сделанный в скобках определения url() в CSS или в цитируемом значении атрибута src тега img в [X] HTML. Вы можете проверить URL-адрес данных в firefox, поместив строку data:image/... в поле URL-адреса и нажав клавишу ВВОД, она должна отобразить ваше изображение.

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

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

Замечание о пантомиме: Я бы предпочел, чтобы вы использовали один из image/pngimage/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==

$encoded_data = base64_encode(file_get_contents('path-to-your-image.jpg'));    

@davidcorda - Краткость приемлема, но более полные объяснения лучше. stackoverflow.com/questions/how-to-answer

Michal 17.03.2012 20:27

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

// 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 .'" />'

Другие вопросы по теме