Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 图像/Jpeg Base 64至图像_C#_Image - Fatal编程技术网

C# 图像/Jpeg Base 64至图像

C# 图像/Jpeg Base 64至图像,c#,image,C#,Image,我有这样的image/jped base64代码 data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA...... 我需要,转换成图像这段代码,并保存为jpeg文件的文件。我计算了一下Windows窗体(C#)。插入文本框和按钮。在文本框中插入base 64代码(代码在上面),然后单击按钮 private void button1_Click(object sender, EventArgs e) { if

我有这样的image/jped base64代码

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA......
我需要,转换成图像这段代码,并保存为jpeg文件的文件。我计算了一下Windows窗体(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照片查看器上看起来像这样

但是当我在谷歌浏览器上运行这个base64代码时,没有问题。在Google Chrome浏览器上查看nice

总结我的问题,我需要base64代码来对这个文件进行映像并将其保存为jpeg文件。 我怎样才能解决这个问题?
谢谢。

我认为问题在于大端和小端不匹配请参见

将Base64直接转换为文件避免将其加载到图像中,这样它应该与原始图像一样老练,当然这仍然不能解决图像显示问题

byte[] newfile = Convert.FromBase64String(data);
File.WriteAllBytes(@"C:\path\to\file.jpg", newfile);

base64 URL的任何部分是否已编码,或者当来自文本框时是否有其他特殊字符?到目前为止,您似乎没有得到完整的字符串。请确保使用内联字符串更新您的示例,内联字符串是一个小而完整的base64字符串示例,它确实显示了您观察到的行为。我还尝试过使用截断的Base64字符串(我认为这是您的问题),但我遇到了FormatException,图像没有保存。@Alexei Levenkov我有完整的代码。因为当我在chrome浏览器上测试时,这张图片显示得非常完美。但当我另存为文件时,并没有显示完全相同的代码。我创建了一个简单的jpeg数据url,它在chrome(作为img元素的src)和Windows Photo Viewer中被打开,然后由代码保存。看来你的形象有点特别。你能分享这个问题可以复制的确切数据吗?是的,你说得对。我现在测试了,没有解决我的图片显示问题吗(那么您的base64图像是损坏的jpeg图像,或者可能不是jpeg图像,而是png或gif图像?您应该在十六进制编辑器中检查标题我知道其他图像格式可能会在Window Photo Viewer中以错误的扩展名显示,但会出现故障。