Image与Base64String的互转换

正在做那个类似于ACDSee的程序, 在写的过程, 想要把Thumbnail文件存储到数据库, 在这个过程中, 就有了以下代码…..

将Jpeg格式转换成Base64String格式:

Image to Base64String

 

将Base64String转换回Jpeg:

Base64String to Image

 

注意: 这个转换是有损转换, 将Jpeg文件转换成Base64String, 再转换回来成Jpeg的文件明显小于原图(起码我在测试的过程中发现是这样的.)

posted @ 2006-07-01 22:43 XiaoHui 阅读(1788) 评论(5) 编辑 收藏

 回复 引用 查看   
#1楼2006-07-02 20:35 | Yok      
有损...这说法很不科学
 回复 引用   
#2楼2006-07-02 22:27 | ORIN[未注册用户]
嗯...不明白你所谓的“有损”是指什么?图片尺寸改变了?还是图片文件大小改变了?如果在转换时发生了字节的丢失那么怎么能保证经过转换后的数据依然是正确的JPG的文件格式数据?...不解...
 回复 引用 查看   
#3楼[楼主]2006-07-02 23:50 | XiaoHui      
@Yok
@ORIN
是我表述不清,在我的测试过程中,发现经过一次转换的图片,相比原图有一点点的差别,仔细看可以判断出来,这也就是我指的有损.

另外今天发现,有些图片经过一次转换后,大小不变....

 回复 引用   
#4楼2006-07-03 09:32 | baoli[未注册用户]
问题应该是在于,
bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);

bitImage.Save(filePath.Substring(0, filePath.Length - 4), System.Drawing.Imaging.ImageFormat.Jpeg);
这里吧(图片格式做了转换....似乎是..)

个人感觉,把图片转换成Base64String,没有必要一定要把图片用bitImage读入文件,直接用fileStream之类的文件类来读取文件就好了。

 回复 引用 查看   
#5楼[楼主]2006-07-03 11:54 | XiaoHui      
@baoli
格式没变,原本就是JPG格式的.