Como você converte uma imagem de um caminho no computador do usuário em uma string base64 em C #?
Por exemplo, tenho o caminho para a imagem (no formato C:/image/1.gif
) e gostaria de ter um URI de dados como o que data:image/gif;base64,/9j/4AAQSkZJRgABAgEAYABgAAD..
representa a 1.gif
imagem retornada.
Respostas:
Tente isto
fonte
image.RawFormat
.RawFormat
não é um especificador de formato de imagem; é uma propriedade doimage
objeto, que retorna em qual formato a imagem estava quando foi lida do arquivo , ou seja, neste caso, ela retornaria o formato gif. Portanto, não muda nada, exceto que, em vez dos bytes do arquivo original real, você tem os bytes da imagem salvos novamente em gif pela estrutura .Net.Obtenha a
byte[]
representação de array de bytes ( ) da imagem e, em seguidaConvert.ToBase64String()
, use st. como isso:Para converter uma imagem base4 de volta em System.Drawing.Image:
fonte
System.Drawing.Image
você pode usar st. assim:var img = Image.FromStream(new MemoryStream(Convert.FromBase64String(base64String)));
Como a maioria de nós gosta de oneliners:
Se você precisar dele como matriz de bytes Base64:
fonte
Embora a resposta mais complicada seja ok, acho que isso é muito melhor
É simples, você não precisa salvar novamente e lida com formatos diferentes
fonte
Esta é a aula que escrevi para este propósito:
fonte
Você pode facilmente passar o caminho da imagem para recuperar a string base64
Espero que isso ajude.
fonte
_image.RawFormat
), mas expõe os dados como tipo MIMEimage/jpg
Você pode usar o
Server.Map
caminho para fornecer o caminho relativo e, em seguida, criar uma imagem usando abase64
conversão ou apenas adicionar umabase64
string aimage src
.fonte
Assim é mais simples, onde passa a imagem e depois passa o formato.
fonte
O código a seguir funciona para mim:
fonte
Com base na resposta mais votada, atualizada para C # 8. O seguinte pode ser usado fora da caixa. Adicionado explícito
System.Drawing
antes,Image
já que se pode usar essa classe de outro namespace padrão.fonte
Você pode convertê-lo assim
Resultado
fonte
Algo parecido
fonte
C#
tag na pergunta?