我正在尝试使用File.ReadAllBytes(string)
方法读取.png图像的字节,但没有成功。
我的图像尺寸为2464x2056x3(15,197,952 字节),但这个方法返回的数组大小约为12,000,000字节。
我试过一个相同大小的白色图像,得到了一个25,549字节的字节数组,并检查了字节数组,发现了各种各样的值,很明显这不正确,因为这是一个白色图像。
我使用的代码如下:
var frame = File.ReadAllBytes("C:\\workspace\\white.png");
我也尝试先将图像作为Image对象打开,然后使用以下代码获取字节数组:
using (var ms = new MemoryStream())
{
var imageIn = Image.FromFile("C:\\workspace\\white.png");
imageIn.Save(ms, imageIn.RawFormat);
var array = ms.ToArray();
}
但结果和以前一样...
你有什么想法吗?
我该如何读取字节数组?
ReadAllBytes
的功能正常。您已经读取了文件数据的字节数组。您是想读取像素数据吗? - Panagiotis KanavosImage
和Bitmap
是为在屏幕上绘制而创建的,当你尝试在像素级别应用变换时会使生活变得困难。另一方面,System.Graphics
命名空间中的其他类允许你指定转换,这些转换被翻译成Windows GDI+命令,使它们快速但受限制。对于一般的图像处理,最好使用例如ImageSharp。 - Panagiotis Kanavos