C# 从流转换System.Drawing.Image--参数无效

C# 从流转换System.Drawing.Image--参数无效,c#,C#,我正在努力改变信仰 来自流的System.Drawing.Image 但其抛出的参数不是有效的异常。 Stream p_sImageStream = GenerateStreamFromString(p_sImage); System.Drawing.Image oIM = Bitmap.FromStream(p_sImageStream); 我的p_sImage是“56427673422d0cbd5dfdfebc_M-19_uwide-1.JPG”GenerateStreamFromSt

我正在努力改变信仰

来自流的System.Drawing.Image

但其抛出的
参数不是有效的异常。

 Stream p_sImageStream = GenerateStreamFromString(p_sImage);
 System.Drawing.Image oIM = Bitmap.FromStream(p_sImageStream);

我的p_sImage是
“56427673422d0cbd5dfdfebc_M-19_uwide-1.JPG”

GenerateStreamFromString的参数不是文件名,它应该包含实际数据

如果您有JPEG文件的文件名,请使用
file.OpenRead
获取可以传递到
Bitmap.FromStream
的流,或者只需使用
新建位图(文件名)
--此构造函数重载将打开并读取文件。

尝试此操作

string p_sImage = @"c:\temp\56427673422d0cbd5dfdfebc_M-19__wide-1.JPG";
FileStream stream = new FileStream(p_sImage, FileMode.Open);
System.Drawing.Image oIM = Bitmap.FromStream(stream);

图形是二进制文件,不应将其转换为字符串。二进制数据应始终使用UTF8编码,并转换为字节[]而不是字符串。大多数字符串类默认为Ascii编码,这将损坏二进制数据。因此,请确保在使用二进制数据时指定编码。这就是为什么我要先将其转换为流,然后再绘制。我哪里出错了。显示
GenerateStreamFromString()
的代码,它不是“流”,而是文件名。改为使用Image.FromFile()。@jstreet:可能来自