现在我正在使用System.Drawing.Bitmap拍摄图像并将其划分为区域。我假设Bitmap必须解压缩图像才能对其执行操作。
但是,Bitmap类接受以下格式:BMP,GIF,EXIF,JPG,PNG和TIFF
其中一些格式是压缩的,因此如果流中的数据被压缩,是否必须解压缩才能执行操作?如果是这样,这是否意味着Bitmap类为流的解压缩版本分配更多内存?
我觉得如果位图类对流进行数据修改,那么就必须对流进行解压缩,这应该使位图类使用与BMP流相同的内存量,就像它处理PNG流一样,尽管事实上,PNG流更小。
答案 0 :(得分:2)
事实上,GDI需要原始像素数据将其提供给图形卡和/或代表它,所以是的,它正在解压缩,但可能你不会看到内存不断上升因为它已经完成了系统/图形卡。
一些特殊情况是DXT纹理和其他一些特殊类型,它们可以被硬件理解,并且不需要解压缩才能工作。