我想开始学习如何拆分图像以找到其中的模式,但为了做到这一点,我需要先看看是什么原因造成的。我想要一个png并将其转换为一个字节数组,以便我可以打印出来并查看是否可以识别数组值中的简单模式。将图像转换为字节[]
到目前为止,我有这个
public MainWindow()
{
InitializeComponent();
System.Drawing.Image image;
image = System.Drawing.Image.FromFile("one.png");
byte[] imArray = imageToByteArray(image);
String bytes = "";
foreach (Char bite in imArray)
{
bytes += "-"+bite;
}
MessageBox.Show(bytes);
}
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
但它似乎并不奏效。当调用转换方法时,它给了我一个空错误。我不知道为什么这是行不通的,因为我对这些组织的理解是没有意义的。
如果你可以建议一个更简单的方法来让这个转换免费发布它。我没有卡在这个代码我只想一个工作的例子,所以我有一个起点。
谢谢!
如果您没有转换文件的格式,为什么不简单地使用FileStream将文件作为二进制文件读取? – 2013-03-04 17:25:28
[File.ReadAllBytes](http://msdn.microsoft.com/en-us/library/system.io.file.readallbytes.aspx) – 2013-03-04 17:26:00
在你的例子中,你打开一个名为“one.png”的文件,但选择' imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);'作为ImageFormat。 – netblognet 2013-03-04 17:30:12