Immagine di codifica Base64
-
09-06-2019 - |
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
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.
- 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
- 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
- Inviati tramite e-mail il file e visualizza i contenuti non elaborati dell'e-mail, copia e incolla.
- 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!