Domanda

Sto creando un componente aggiuntivo di ricerca aperta per Firefox/IE e l'immagine deve essere codificata Base64, quindi come posso codificare in base 64 la favicon che ho?

Conosco solo PHP

È stato utile?

Soluzione

Per quanto ricordo, esiste un elemento xml per i dati dell'immagine.Puoi usare questo sito web per codificare un file (usa il campo upload).Quindi basta copiare e incollare i dati nell'elemento XML.

Potresti anche usare PHP per farlo in questo modo:

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

Utilizzo La guida di Mozilla per assistenza sulla creazione dei plugin OpenSearch.Ad esempio, l'elemento icona viene utilizzato in questo modo:

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

Dove imageData sono i tuoi dati Base64.

Altri suggerimenti

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

La mia sinossi di rfc2397 È:

Una volta ottenuti i dati dell'immagine con codifica Base64, inseriscili nei tag <Image></Image> con il prefisso "data:{mimetype};base64," questo è simile al prefisso fatto tra parentesi di url() definizione in CSS o nel valore tra virgolette di src attributo del img tag in [X]HTML.Puoi testare l'URL dei dati in Firefox inserendo il file data:image/... nel campo URL e premendo Invio, dovrebbe mostrare la tua immagine.

Per la codifica, penso che dobbiamo esaminare tutte le tue opzioni, non solo PHP, perché ci sono così tanti modi per codificare qualcosa.

  1. Usa il base64 strumento da riga di comando.Fa parte dei coreutils GNU (v6+) e praticamente è predefinito in any Cygwin, lioNtuX, GnuWin32 installare, ma non i BSD che ho provato.Problema: $ base64 imagefile.ico > imagefile.base64.txt
  2. Utilizza uno strumento che offra l'opzione per convertire in base64, ad esempio Blocco note++ che ha la funzionalità in plugin->Strumenti MIME->Codifica base64
  3. Inviati tramite e-mail il file e visualizza i contenuti non elaborati dell'e-mail, copia e incolla.
  4. Usare un ragnatela modulo.

Una nota sui tipi MIME:Preferirei che ne usassi uno image/png image/jpeg O image/gif come io non riesco a trovare il popolare image/x-icon.Dovrebbe essere così image/vnd.microsoft.icon?Anche gli altri formati sono molto più brevi.

confronta 265 byte contro 1150 byte:

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

Controlla il seguente esempio

<?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 mi ha portato a farlo Questo soluzione (base64_encode).Spero che questo ti aiuti!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top