Pregunta

Estoy creando un complemento de búsqueda abierta para Firefox/IE y la imagen debe estar codificada en Base64. Entonces, ¿cómo puedo codificar en base 64 el favicon que tengo?

Sólo estoy familiarizado con PHP

¿Fue útil?

Solución

Hasta donde recuerdo, hay un elemento xml para los datos de la imagen.Puedes usar esto sitio web para codificar un archivo (use el campo de carga).Luego simplemente copie y pegue los datos en el elemento XML.

También puedes usar PHP para hacer esto así:

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

Usar guía de mozilla para obtener ayuda sobre la creación de complementos de OpenSearch.Por ejemplo, el elemento icono se usa así:

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

Dónde imageData son sus datos base64.

Otros consejos

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

Mi sinopsis de rfc2397 es:

Una vez que tenga los datos de su imagen codificados en base64, colóquelos dentro de las etiquetas <Image></Image> con el prefijo "data:{mimetype};base64," esto es similar al prefijo hecho entre paréntesis de url() definición en CSS o en el valor cotizado del src atributo de la img etiqueta en [X]HTML.Puedes probar la URL de datos en Firefox poniendo el data:image/... línea en el campo URL y presionando Enter, debería mostrar su imagen.

Para la codificación, creo que necesitamos repasar todas sus opciones, no solo PHP, porque hay muchas maneras de BASE64 codificar algo.

  1. Utilizar el base64 herramienta de línea de comando.Es parte de GNU coreutils (v6+) y prácticamente predeterminado en cualquier Cygwin, linortetuX, GnuWin32 instalar, pero no los BSD que probé.Asunto: $ base64 imagefile.ico > imagefile.base64.txt
  2. Utilice una herramienta que ofrezca la opción de convertir a base64, como Bloc de notas++ que tiene la función en complementos->herramientas MIME->codificación base64
  3. Envíe usted mismo el archivo por correo electrónico y vea el contenido sin procesar del correo electrónico, cópielo y péguelo.
  4. Usar una web forma.

Una nota sobre los tipos mimos:Preferiría que usaras uno de image/png image/jpeg o image/gif como yo no puedo encontrar popular image/x-icon.¿Debería ser así? image/vnd.microsoft.icon?Además los otros formatos son mucho más cortos.

compare 265 bytes con 1150 bytes:

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==

Mira el siguiente ejemplo

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

Google me llevó a este solución (base64_encode).¡Espero que esto ayude!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top