位图文件大小与字节 [] 大小
bitmap file size vs byte[] size
bmp.ToByteArray(ImageFormat.Bmp).Length 3145782 int
但文件系统显示为 2,25 MB (2.359.350 bytes) and Size on disk 2,25 MB (2.363.392 bytes)
为什么会有差异以及如何确定字节[]中位图的正确大小
表格?
string appPath = Application.StartupPath;
var bmp = new Bitmap(Image.FromFile(appPath + "\Images\Penguins.bmp"));
public static byte[] ToByteArray(this Image image, ImageFormat format)
{
using (MemoryStream ms = new MemoryStream())
{
image.Save(ms, format);
return ms.ToArray();
}
}
Windows7/NTFS
我怀疑这是因为磁盘上的文件不包含 alpha 通道,但在内存中却包含。在磁盘上它是每个像素 3 个字节,但在内存中它使用 4 个。
2359350*4/3 是 3145800,只比您看到的值略多一点。我预计细微差别是因为磁盘上有一个 header,但它实际上不是图像的一部分。
bmp.ToByteArray(ImageFormat.Bmp).Length 3145782 int
但文件系统显示为 2,25 MB (2.359.350 bytes) and Size on disk 2,25 MB (2.363.392 bytes)
为什么会有差异以及如何确定字节[]中位图的正确大小 表格?
string appPath = Application.StartupPath;
var bmp = new Bitmap(Image.FromFile(appPath + "\Images\Penguins.bmp"));
public static byte[] ToByteArray(this Image image, ImageFormat format)
{
using (MemoryStream ms = new MemoryStream())
{
image.Save(ms, format);
return ms.ToArray();
}
}
Windows7/NTFS
我怀疑这是因为磁盘上的文件不包含 alpha 通道,但在内存中却包含。在磁盘上它是每个像素 3 个字节,但在内存中它使用 4 个。
2359350*4/3 是 3145800,只比您看到的值略多一点。我预计细微差别是因为磁盘上有一个 header,但它实际上不是图像的一部分。