在我们的程序里面,很多地方会用到图片。而对于图片的存取就显得非常重要了。在存取图片这个问题上,格式是很关键的一个话题。
例如说,如果原来的图片是jpg,而你试图将其用bmp保存或者读取,就可能导致问题。或者即便不出问题,在存储机制上也有很大的差异
下面这个截图,可以看到,我原先一个jpg的图片,体积为29KB,然而我强制保存为bmp后,虽然能打开,但是体积为399KB了。
所以,就有必要搞明白这个格式的问题。
1. 第一个问题,如何得到来源图片的格式
这个其实不难,所有图片对象都有一个属性RawFormat,这个属性的类型其实就是ImageFormat
pictureBox1.Image.RawFormat
2. 第二个问题,到底有哪几种格式
这个也不用咱操心,通常有下面几种格式
3. 第三个问题,如何记录这个格式。这一点很重要,我们可能需要在数据库中适当位置记录这个值,然后以后还原的话才可以知道什么格式
pictureBox1.Image.RawFormat.Guid
4. 第四个问题,如何根据这个Guid进行还原
new System.Drawing.Imaging.ImageFormat(pictureBox1.Image.RawFormat.Guid)