Published on

Converter imagem para Base64 com PHP

Simples e Simples

Recentemente estava trabalhando em uma integração com o e-commerce Magento, e precisava cadastrar produtos e fotos através da API que ele oferece. Olhando a documentação, percebi que seria necessário enviar a imagem convertida em Base64.

PHP ajuda muuuuuuito

É muito interessante as soluções de problemas que universo PHP oferece, isso sem dúvida me faz ficar cada vez mais apaixonado pela linguagem. E para esse problema, a solução é bem simples, vamos lá:

<?php
//Pega o conteudo do arquivo com o file_get_contents
$imagem = file_get_contents(
'https://leonardoprocopio.com/static/fotoaqui.jpg');

//Convertemos o conteudo com base64
$data = base64_encode($imagem);

//Exibindo resultado da conversão
echo $data;
?>
RESUMIDO...
iVBORw0KGgoAAAANSUhEUgAAA8AAAAPACAYAAAD61hCbAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw1AUhU9TpaIVBzuIKESoThZERRy1CkWoEGqFVh1MXvojNGlIUlwcBdeCgz+LVQcXZ10dXAVB8AfEzc1J0UVKvC8ptIjxwuN9nHfP4b37AKFWYprVNgZoum2mEnExk10RQ68IYhBdCGBIZpYxK0lJ+NbXPfVR3cV4ln/fn9Wt5iwGBETiGWaYNvE68dSmbXDeJ46woqwSnxOPmnRB4keuKx6/AAAQwAAAACCAAQAAQAADAAAggAEAAEAAAwAAgAAGAAAAAQwAAAACGAAAAAQwAAAACGAAAAAQwAAAACCAAQAAeEX6/wHLFC2ZWi3wyQAAAABJRU5ErkJggg==

Simples né!? O resultado você tem uma string (bem grandinha por sinal), que pode ser enviada para API ou se preferir pode gravar no BD. Um detalhe interessante: Geralmente os arquivos convertidos para Base64 ficam uns 30% maiores que o arquivo original.

O comando base64_encode e file_get_contents estão desde a versão 4 do PHP.

Espero ter ajudado ;)