Estoy creando un complemento de búsqueda abierto para Firefox/IE y la imagen debe estar codificada en Base64, así que ¿cómo puedo 64 codificar el favicon que tengo?Imagen de codificación Base64
no soy más que familiarizado con PHP
Estoy creando un complemento de búsqueda abierto para Firefox/IE y la imagen debe estar codificada en Base64, así que ¿cómo puedo 64 codificar el favicon que tengo?Imagen de codificación Base64
no soy más que familiarizado con PHP
Por lo que recuerdo, hay un elemento xml para los datos de la imagen. Puede usar este website para codificar un archivo (use el campo de carga). Luego solo copie y pegue los datos en el elemento XML.
También es posible usar PHP para hacer esto, así:
<?php
$im = file_get_contents('filename.gif');
$imdata = base64_encode($im);
?>
Uso Mozilla's guide para la ayuda en la creación de plugins OpenSearch. Por ejemplo, el elemento icono se utiliza como esto:
<img width="16" height="16">data:image/x-icon;base64,imageData</>
Dónde imageData
es sus datos base64.
Mi sinopsis de rfc2397 es:
Una vez que tenga su base 64 de datos de imagen codificados ponerlo dentro de los < de imágenes> </Imagen> etiquetas con el prefijo "data:{mimetype};base64,
" Esto es similar a la fijación previa en el hecho paréntesis de la definición url()
en CSS o en el valor cotizado del atributo src
de la etiqueta img
en [X] HTML. Puedes probar la URL de datos en Firefox poniendo la línea data:image/...
en el campo URL y presionando Enter, debería mostrar tu imagen.
Para la codificación real, creo que necesitamos revisar todas sus opciones, no solo PHP, porque hay tantas formas de codificar algo en base64.
base64
. Es parte de la coreutils GNU (v6 +) y prácticamente cualquier defecto en Cygwin, Linux, GnuWin32 instalar, pero no los BSD que he probado. Problema: $ base64 imagefile.ico > imagefile.base64.txt
Una nota sobre los tipos MIME: yo preferiría que utilice uno de image/png
image/jpeg
o image/gif
como can't find la popular image/x-icon
. ¿Debería ser image/vnd.microsoft.icon
? También los otros formatos son mucho más cortos.
comparar 265 bytes vs 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==
$encoded_data = base64_encode(file_get_contents('path-to-your-image.jpg'));
@davidcorda - La brevedad es aceptable, pero las explicaciones más completas son mejores. http://stackoverflow.com/questions/how-to-withour – Michal
Comprobar el ejemplo siguiente
<?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 .'" />'
?>
base64_encode en este caso solo codificará el "identificador de recursos" de la imagen, en caso de que haya algo. Debería leer los contenidos reales del archivo. Sin embargo, el simple hecho de usar el sitio web del codificador de base64 debería funcionar. –
Esto no funciona en absoluto para mí. '$ im' es un' recurso' y obtengo un error 'base64_encode() espera que el parámetro 1 sea cadena, recurso dado' –
Los comentarios anteriores se referían a una edición anterior, hakre corrigió mi error. @stevether esto ahora debería funcionar. – Ross