Aqui está o meu código:
protected void SaveMyImage_Click(object sender, EventArgs e)
{
string imageUrl = Hidden1.Value;
string saveLocation = Server.MapPath("~/PictureUploads/whatever2.png") ;
HttpWebRequest imageRequest = (HttpWebRequest)WebRequest.Create(imageUrl);
WebResponse imageResponse = imageRequest.GetResponse();
Stream responseStream = imageResponse.GetResponseStream();
using (BinaryReader br = new BinaryReader(responseStream))
{
imageBytes = br.ReadBytes(500000);
br.Close();
}
responseStream.Close();
imageResponse.Close();
FileStream fs = new FileStream(saveLocation, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
try
{
bw.Write(imageBytes);
}
finally
{
fs.Close();
bw.Close();
}
}
}
A declaração imageUrl superior está recebendo uma string de imagem Base64 e quero convertê-la em uma imagem. Acho que meu conjunto de códigos funciona apenas para imagens como "www.mysite.com/test.jpg" e não para uma string Base64. Alguém tem alguma sugestão? Obrigado!
c#
asp.net
image-processing
base64
anthonypliu
fonte
fonte
Você pode salvar o Base64 diretamente no arquivo:
fonte
Image.Save()
). Ambos funcionam, mas, por algum motivo, esta versão torna o tamanho do meu arquivo 30% menor, sem alterações perceptíveis na qualidade da imagemAqui está o que eu acabei indo.
fonte
A generic error occurred in GDI+
descrito aqui . Mover oimage.Save
interior do bloco usando o corrigiu para mim.Eu sugeriria via Bitmap:
fonte
No meu caso, funciona apenas com duas linhas de código. Teste o código C # abaixo:
É isso aí. Por favor, vote se você realmente achar que esta solução funciona para você. Desde já, obrigado.
fonte
dirPath
precisa ter um@
sinal antes da string i..e.@"C:\myfolder\"
ou você tem que escapar das barras invertidas na string ie"C:\\myfolder\\"
Aqui está o código de trabalho para converter uma imagem de uma string base64 em um
Image
objeto e armazená-la em uma pasta com um nome de arquivo exclusivo:fonte
Em um cenário semelhante, o que funcionou para mim foi o seguinte:
ImageTagId
é o ID da marca de imagem ASP.fonte
Se você tiver uma sequência de dados binários codificados em Base64, poderá fazer o seguinte:
Você deve conseguir gravar a matriz resultante em um arquivo.
fonte
fonte