Pergunta

Estou criando um complemento de pesquisa aberto para Firefox/IE e a imagem precisa ser codificada em Base64. Então, como posso codificar em base 64 o favicon que possuo?

Eu só estou familiarizado com PHP

Foi útil?

Solução

Tanto quanto me lembro, existe um elemento xml para os dados da imagem.Você pode usar isso local na rede Internet para codificar um arquivo (use o campo de upload).Depois é só copiar e colar os dados no elemento XML.

Você também pode usar PHP para fazer isso assim:

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

Usar Guia da Mozilla para obter ajuda na criação de plug-ins OpenSearch.Por exemplo, o elemento ícone é usado assim:

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

Onde imageData são seus dados base64.

Outras dicas

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

Minha sinopse de rfc2397 é:

Depois de obter os dados da imagem codificados em base64, coloque-os dentro das tags <Image></Image> prefixadas com "data:{mimetype};base64,"isso é semelhante à prefixação feita entre parênteses de url() definição em CSS ou no valor cotado do src atributo do img etiqueta em [X]HTML.Você pode testar o URL de dados no Firefox colocando o data:image/... linha no campo URL e pressionando enter, deve mostrar sua imagem.

Para realmente codificar, acho que precisamos revisar todas as suas opções, não apenas o PHP, porque há muitas maneiras de basear64 codificar alguma coisa.

  1. Use o base64 ferramenta de linha de comando.Faz parte do GNU coreutils (v6+) e é praticamente padrão em qualquer Cygwin, eueunvocêx, GnuWin32 instalar, mas não os BSDs que tentei.Emitir: $ base64 imagefile.ico > imagefile.base64.txt
  2. Use uma ferramenta que tenha a opção de converter para base64, como Bloco de notas++ que tem o recurso em plugins->ferramentas MIME->base64 Encode
  3. Envie o arquivo por e-mail para você mesmo e visualize o conteúdo bruto do e-mail, copie e cole.
  4. Use um rede forma.

Uma observação sobre tipos MIME:Eu preferiria que você usasse um dos image/png image/jpeg ou image/gif como eu não consigo encontrar o popular image/x-icon.Isso deveria ser image/vnd.microsoft.icon?Além disso, os outros formatos são muito mais curtos.

compare 265 bytes com 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==

Verifique o exemplo a seguir

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

O Google me levou a esse solução (base64_encode).Espero que isto ajude!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top