我正在尝试打开图像文件(JPEG或JPG)并将图像存储到c#xaml中的数组中。虽然我可以打开文件并将文件转换为位图图像,但我无法将其存储到数组中。这是我的代码:
(%3)
答案 0 :(得分:3)
我不明白为什么你这么复杂。 如果要创建BitmapImage并且您有文件系统的路径,为什么不使用:
BitmapImage bImage = new BitmapImage(new Uri(dlg.FileName));
然后,您可以通过列表/数组轻松地将图像存储在数组/列表中:
List<BitmapImage> _images = new List<BitmapImage>();
_images.Add(bImage);
请注意,在数组/列表中存储大型图像可能会耗费大量内存。
修改
如果你想简单地存储字节数组:
byte[] buff = File.ReadAllBytes(dlg.FileName)
请注意,byte[]
包含1个文件,因此如果您要存储多个文件,请使用2个国家byte[]
(byte[][]
)或List<byte[]>
。
获取图像的高度和宽度:
System.Drawing.Image img = System.Drawing.Image.FromFile(dlg.FileName);
Console.Write("Width: " + img.Width + ", Height: " + img.Height);