.NET : 关于图片格式的问题
在我们的程序里面,很多地方会用到图片。而对于图片的存取就显得非常重要了。在存取图片这个问题上,格式是很关键的一个话题。
例如说,如果原来的图片是jpg,而你试图将其用bmp保存或者读取,就可能导致问题。或者即便不出问题,在存储机制上也有很大的差异
下面这个截图,可以看到,我原先一个jpg的图片,体积为29KB,然而我强制保存为bmp后,虽然能打开,但是体积为399KB了。
所以,就有必要搞明白这个格式的问题。
1. 第一个问题,如何得到来源图片的格式
这个其实不难,所有图片对象都有一个属性RawFormat,这个属性的类型其实就是ImageFormat
pictureBox1.Image.RawFormat
2. 第二个问题,到底有哪几种格式
这个也不用咱操心,通常有下面几种格式
名称 | 说明 | |
---|---|---|
Bmp | 获取位图图像格式 (BMP)。 | |
Emf | 获取增强型 Windows 图元文件图像格式 (EMF)。 | |
Exif | 获取可交换图像文件 (Exif) 格式。 | |
Gif | 获取图形交换格式 (GIF) 图像格式。 | |
Guid | 获取表示此 ImageFormat 对象的 Guid 结构。 | |
Icon | 获取 Windows 图标图像格式。 | |
Jpeg | 获取联合图像专家组 (JPEG) 图像格式。 | |
MemoryBmp | 获取内存位图图像格式。 | |
Png | 获取 W3C 可移植网络图形 (PNG) 图像格式。 | |
Tiff | 获取标签图像文件格式 (TIFF) 图像格式。 | |
Wmf | 获取 Windows 图元文件 (WMF) 图像格式。 |
3. 第三个问题,如何记录这个格式。这一点很重要,我们可能需要在数据库中适当位置记录这个值,然后以后还原的话才可以知道什么格式
pictureBox1.Image.RawFormat.Guid
4. 第四个问题,如何根据这个Guid进行还原
new System.Drawing.Imaging.ImageFormat(pictureBox1.Image.RawFormat.Guid)