我有像这样的image / jped base64代码,
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA......
我需要转换为此代码的图像并将文件另存为jpeg文件。我想到了Windows Form(C#)。插入文本框和按钮。在文本框中插入base 64代码(代码在上面),然后单击按钮。
private void button1_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(textBox1.Text))
{
string imageDataParsed = textBox1.Text.Substring(textBox1.Text.IndexOf(',') + 1);
byte[] imageBytes = Convert.FromBase64String(imageDataParsed);
MemoryStream ms1 = new MemoryStream(imageBytes);
Image img = Image.FromStream(ms1);
img.Save(Application.StartupPath + "\\Images\\1.jpg", ImageFormat.Jpeg);
}
}
文件另存为jpeg。但是这个文件在Windows Photo Viewer上看起来像这样
但是当我在谷歌Chrome上运行这个基本64代码时,没有问题。在Google Chrome浏览器上查看效果不错。
总结我的问题,我需要base64代码到Image并将我的服务器保存为jpeg文件。 我怎么解决这个问题? 感谢。
答案 0 :(得分:1)
将Base64直接转换为文件,避免将其加载到图像中,这样它应该像原始图像一样完美,当然这仍然无法解决显示问题的图像。
byte[] newfile = Convert.FromBase64String(data);
File.WriteAllBytes(@"C:\path\to\file.jpg", newfile);
答案 1 :(得分:-1)
我认为问题是大端和小端不匹配,请参阅http://en.wikipedia.org/wiki/Endianness