位图比原始图像大
本文关键字:图像 原始 位图 | 更新日期: 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位