.NET : 关于图片格式的问题

在我们的程序里面,很多地方会用到图片。而对于图片的存取就显得非常重要了。在存取图片这个问题上,格式是很关键的一个话题。

例如说,如果原来的图片是jpg,而你试图将其用bmp保存或者读取,就可能导致问题。或者即便不出问题,在存储机制上也有很大的差异

下面这个截图,可以看到,我原先一个jpg的图片,体积为29KB,然而我强制保存为bmp后,虽然能打开,但是体积为399KB了。

image

所以,就有必要搞明白这个格式的问题。

1. 第一个问题,如何得到来源图片的格式

这个其实不难,所有图片对象都有一个属性RawFormat,这个属性的类型其实就是ImageFormat

pictureBox1.Image.RawFormat

2. 第二个问题,到底有哪几种格式

这个也不用咱操心,通常有下面几种格式

  名称 说明
Public property Static Supported by the .NET Compact Framework Bmp 获取位图图像格式 (BMP)。
Public property Static Emf 获取增强型 Windows 图元文件图像格式 (EMF)。
Public property Static Exif 获取可交换图像文件 (Exif) 格式。
Public property Static Supported by the .NET Compact Framework Gif 获取图形交换格式 (GIF) 图像格式。
Public property Guid 获取表示此 ImageFormat 对象的 Guid 结构。
Public property Static Icon 获取 Windows 图标图像格式。
Public property Static Supported by the .NET Compact Framework Jpeg 获取联合图像专家组 (JPEG) 图像格式。
Public property Static MemoryBmp 获取内存位图图像格式。
Public property Static Supported by the .NET Compact Framework Png 获取 W3C 可移植网络图形 (PNG) 图像格式。
Public property Static Tiff 获取标签图像文件格式 (TIFF) 图像格式。
Public property Static Wmf 获取 Windows 图元文件 (WMF) 图像格式。

3. 第三个问题,如何记录这个格式。这一点很重要,我们可能需要在数据库中适当位置记录这个值,然后以后还原的话才可以知道什么格式

pictureBox1.Image.RawFormat.Guid

4. 第四个问题,如何根据这个Guid进行还原

new System.Drawing.Imaging.ImageFormat(pictureBox1.Image.RawFormat.Guid)

本文由作者:陈希章 于 2009/8/1 8:17:02 发布在:http://www.cnblogs.com/chenxizhang/
本文版权归作者所有,可以转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
更多博客文章,以及作者对于博客引用方面的完整声明以及合作方面的政策,请参考以下站点:陈希章的博客中心
posted @ 2009-08-01 08:17  陈希章  阅读(1843)  评论(0编辑  收藏  举报