Base64 é um método para codificação de dados para transferência na Internet (codificação MIME para transferência de conteúdo) . É utilizado frequentemente para transmitir dados binários por meios de transmissão que lidam apenas com texto, como por exemplo para enviar arquivos anexos por email.
É constituído por 64 caracteres ([A-Za-z0-9], “/” e “+”) que deram origem ao seu nome. O carácter “=” é utilizado como um sufixo especial e a especificação original (RFC 989) definiu que o símbolo “*” pode ser utilizado para delimitar dados convertidos, mas não criptografados, dentro de um stream.
Exemplo de codificação:
- Texto original: hello world
- Texto convertido para Base64: aGVsbG8gd29ybGQK
A codificação Base64 é frequentemente utilizada quando existe uma necessidade de transferência e armazenamento de dados binários para um dispositivo designado para trabalhar com dados textuais. Esta codificação é amplamente utilizada por aplicações em conjunto com a linguagem de marcação XML, possibilitando o armazenamento de dados binários em forma de texto.
Agora vamos converter uma imagem ou arquivo em diversas formas e linguagens :
Let’s do it !!
PHP :
<?php // Le a stream do Arquivo e retorna a imagem $imagem = file_get_contents('imagem.png'); //converte a imagem em string base64 echo base64_encode($imagem); ?>
C#
public string ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format) { using (MemoryStream ms = new MemoryStream()) { // Convert Image to byte[] image.Save(ms, format); byte[] imageBytes = ms.ToArray(); // Convert byte[] to Base64 String string base64String = Convert.ToBase64String(imageBytes); return base64String; } }
Java
Base64.encode(FileUtils.readFileToByteArray(file));
Python
import base64
imgdata = base64.b64decode(imgstring)
filename = 'image.jpg' # arquivo
with open(filename, 'wb') as f:
f.write(imgdata)
JavaScript
function convertImgToBase64(url, callback, outputFormat){
var canvas = document.createElement('CANVAS'),
ctx = canvas.getContext('2d'),
img = new Image;
img.crossOrigin = 'Anonymous';
img.onload = function(){
var dataURL;
canvas.height = img.height;
canvas.width = img.width;
ctx.drawImage(img, 0, 0);
dataURL = canvas.toDataURL(outputFormat);
callback.call(this, dataURL);
canvas = null;
};
img.src = url;
}
That’s it !
Até a próxima !
Bom dia,
Gostaria de saber se você faz ou indica quem poderia conversar sobre um app java para coleta de dados a partir de iamgens (tabloides e mídia impressa) e também essa mesa mídia digitalizada e disponibilizada online, a ideia é formar um banco de dados a partir de imagens coletadas por celular.
favor me contatar: guilherme.naymaier@bis-brasil.com / 51 9 9992.8979
Boa tarde,
Existe limite para o tamanho da imagem que será convertida para base64?
Eu estou fazendo um teste e inseri manualmente uma imagem em uma coluna VARBINARY(MAX) no SQL Server. Em seguida criei um Web Services (C#) para trazer as informações. Estou usando HTML e JavaScript para tentar mostrar essa imagem no browser, mas não estou conseguindo.
Existe alguma forma? A imagem que inseri no banco tem 360KB.
Obrigada.