位图比原始图像大

本文关键字:图像 原始 位图 | 更新日期: 2023-09-27 18:07:33

我正在内存中加载位图,它似乎比磁盘中的原始图像大小消耗更多的内存。

原始图像是16bpp,所以512x512的图像大约是512K。当我使用Bitmap类将其加载到内存中时,它将图像转换为32bpp,因此它会这样做:512X512X4=1MB,而不是我期望的512K。

是否有一种方法来存储与原始大小的图像?

谢谢,

编辑:下面是我使用的代码:

 System.Drawing.Image MyImage = new Bitmap(img.RenderImage(0)); //img is a DicomFile and the RenderImage Method returns a System.Drawing.Image

内存中的MyImage大小几乎是磁盘中原始图像大小的两倍。

RenderImage方法在这里:https://github.com/rcd/fo-dicom/blob/master/DICOM/Imaging/Render/ImageGraphic.cs

位图比原始图像大

注意:这是问题更新之前的答案。我把它留在这里,因为我认为它增加了价值。如果社区不这么认为,我将删除它。


Bitmap类有一个接受PixelFormat参数的构造函数。

加载/保存图像时,使用与输入格式匹配的PixelFormat.Format16bpp**值。作为快速参考,以下是相关格式:

Format16bppArgb155:颜色信息指定了32,768种颜色,其中5位为红色,5位为绿色,5位为蓝色,1位为alpha。

Format16bppGrayScale:颜色信息指定65536灰度。

Format16bppRgb555:各5位用于红、绿、蓝组件。

Format16bppRgb565:红色占用5位,绿色占用6位,蓝色占用5位