我知道已经有很多关于此的帖子,但到目前为止我尝试的每个解决方案都失败了。我想要的是从Byte[]
对象中获取Image
。
到目前为止我尝试过:
using (MemoryStream ms = new MemoryStream()){/*...*/}
(GDI +例外) image
(ArgumentNullException(编码器))的副本 ImageConverter
(GDI +例外) 我期待的是:
public static Byte[] BytesFromImage(Image img) {
Byte[] imgFile;
MemoryStream ms = new MemoryStream();
img.Save(ms, img.RawFormat);
imgfile = ms.ToArray();
return imgFile;
}
每当我收到错误消息时,它都来自img.save(ms, img.RawFormat);
。
也许只是我,但是我在StackOverflow上所遵循的所有解决方案都给了我相同的结果:GDI +错误,有如此好的解释。
答案 0 :(得分:0)
将img.RawFormat
替换为ImageFormat.Bmp
示例:
class Program
{
public static byte[] BytesFromImage(Image img)
{
Byte[] imgFile;
MemoryStream ms = new MemoryStream();
img.Save(ms, ImageFormat.Bmp);
imgFile = ms.ToArray();
return imgFile;
}
private static void Main(string[] args)
{
using (Image image = new Bitmap(100, 100))
{
byte[] imgArr = BytesFromImage(image);
Console.WriteLine("Image size is: {0}", imgArr.Length);
}
}