Convertendo imagens em base64 em 5 linguagens diferentes (PHP, C#, Java, Python,JavaScript)

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 !

2 comentários em “Convertendo imagens em base64 em 5 linguagens diferentes (PHP, C#, Java, Python,JavaScript)”

  1. 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

  2. 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.

Deixe um comentário