视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
asp.C#实现图片文件与basestring编码解码
2020-11-27 22:43:25 责编:小采
文档


图片当然是存在那个js文件里面,于是我就打开了flashblocker.js,然后浏览一下,找到下面一句:  
var flash = 'data:image/png;base,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAA......'
 (小白)<SPAN style="FONT-SIZE: small">这是我第一次认识到base的用场,记得以前保存网页的时候,总习惯保存为.mht格式,因为这样会把网页中的图片也保存下来,但是一直奇怪为何只有一</SPAN>
view sourceprint?<SPAN style="FONT-SIZE: small">个.mht文件,打开来却有图片,现在知道保存为mht格式时就把网页中的图片全部转成base字符串存在里面了。</SPAN>
view sourceprint?<SPAN style="FONT-SIZE: small"> </SPAN><SPAN style="FONT-SIZE: small">实现:</SPAN>
view sourceprint?<SPAN style="FONT-SIZE: small">  <IMG src="http://pic002.cnblogs.com/img/1971ruru/201003/2010031510340776.jpg"></SPAN>
其实很简单,图片文件到BaseString的转换,只需要Convert类里面的一个ToBaseString方法即可
代码如下:

Image fromImage = Image.FromFile( txtImg.Text );
MemoryStream stream = new MemoryStream();
fromImage.Save( stream, imgFormat[extension] );
txtString.Text = Convert.ToBaseString( stream.GetBuffer() );

  在这里补充一下,貌似icon文件是不能转换的(自己试验的结果),需要转icon的话就要变通一下了,曲线救国~
  从BaseString提取图片的话,需要Convert.FromBaseString()方法,
代码如下:

MemoryStream stream = new MemoryStream( Convert.FromBaseString( txtString.Text ) );
bitmap img = new Bitmap( stream );
img.Save( txtImg.Text );
MessageBox.Show( "Completed!" );

貌似有些同志在转换回来的时候出现问题,感觉应该是定义stream时出的问题,new的时候直接把转换的byte[]给它,应该就不会存在“超出预计范围”的错误。转换出问题应该是跟原图用Java或者其它语言生成的没有关系的。因为base编码应该是一样的。
作者:一修先生     
出处:http://1971ruru.cnblogs.com

下载本文
显示全文
专题