C# 像素高度和像素宽度的图像大小(MB)

C# 像素高度和像素宽度的图像大小(MB),c#,wpf,C#,Wpf,也许是个愚蠢的问题,但是: 当您知道图像时,如何计算图像的大小(以兆字节为单位) 像素高度和像素宽度? 谢谢取决于颜色深度。如果您使用的是8位像素,它将是: 高*宽/1048576 如果您使用的是32位像素,它将是: 4*height*width/1048576即height*width/262144这是我用来获得原始位图图像大小的计算: // Calculate the pixel depth in bytes: int pixSize = Image.GetPixelFormatSize(m

也许是个愚蠢的问题,但是: 当您知道图像时,如何计算图像的大小(以兆字节为单位) 像素高度和像素宽度?
谢谢

取决于颜色深度。如果您使用的是8位像素,它将是:

高*宽/1048576

如果您使用的是32位像素,它将是:


4*height*width/1048576
height*width/262144
这是我用来获得原始位图图像大小的计算:

// Calculate the pixel depth in bytes:
int pixSize = Image.GetPixelFormatSize(myImage.PixelFormat) / 8;
int size = (myImage.Height * myImage.Width * pixSize) / 1048576;

这只是原始位图的大小。正如Scott Jones提到的,这并没有考虑到步幅(缓冲区字节中的填充)或压缩的图像格式。这只是原始位图的最小大小。

你想在文件压缩之前还是之后使用?谷歌肯定能很快回答这个问题。编辑:是的,这里有一个,在不到5秒钟的时间内找到@Ilya Ryzenkov,这使它变得非常简单。[1] :还取决于步幅、图像是内存还是文件格式等。