Flash二进制加载图片的另外一种思路

直接上代码:

package
{
	import com.sociodox.utils.Base64;
	
	import flash.display.Bitmap;
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.system.LoaderContext;
	import flash.utils.ByteArray;
	
	/**
	 * ...
	 * 加载二进制格式图片的例子,当然可以使用URLLoader来进行而进行二进制加载,而这里提供了
	 * 另一种方法,这种方式比较适合校验码的加载
	 * 参考网址http://blog.sina.com.cn/s/blog_557bc46501017lgh.html
	 * @author aisajiajiao
	 */
	public class Main extends Sprite
	{
		
		public function Main()
		{
			init();
		}
		
		private function init():void
		{
			var captchaLc:LoaderContext = new LoaderContext();
			captchaLc.requestedContentParent = stage;
			
			//这个字符串实际上是一个验证码图片转换而来。你可以转换一张自己的图片来代替。但请注意删除所有回车!
			//转换网址:http://www.motobit.com/util/base64-decoder-encoder.asp
			var captchaStr:String = "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";
			
			//把字符串转换成ByteArray,Base64下载地址http://www.sociodox.com/base64.html
			var captchBa:ByteArray = Base64.decode(captchaStr);
			//把loader定义为局部变量,确保加载完成后及时释放内存,放置内存泄露
			var loader:Loader = new Loader();
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadedHandler);
			//通常这里是从远程加载一个二进制数据流,但为了简化代码,这里用captchaBa做为Mockup Data
			loader.loadBytes(captchBa,captchaLc);
		}
		
		private function loadedHandler(e:Event):void
		{
			e.target.removeEventListener(Event.COMPLETE,loadedHandler);
			
			//取出loader里面的内容,Loader类会自动进行解码所以占用一些内存,URLLoader则不会
			var captchaBmp:Bitmap = e.target.content as Bitmap;
			captchaBmp != null ? addChild(captchaBmp) : trace("Error: the format of captcha is wrong!");
			
			e.target.loader.unloadAndStop();		//卸载loader,垃圾回收
		}
		
	}
}
天地会上有一篇和他相近的文章 http://bbs.9ria.com/forum.php?mod=viewthread&tid=82069

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图片的常见存储与读取凡是有以下几种: 存储图片:以二进制的形式存储图片时,要把数据库中的字段设置为Image数据类型(SQL Server),存储的数据是Byte[]. 1.参数是图片路径:返回Byte[]类型: public byte[] GetPictureData(string imagepath) { /**/////根据图片文件的路径使用文件流打开,并保存为byte[] FileStream fs = new FileStream(imagepath, FileMode.Open);//可以是其他重载方法 byte[] byData = new byte[fs.Length]; fs.Read(byData, 0, byData.Length); fs.Close(); return byData; }2.参数类型是Image对象,返回Byte[]类型: public byte[] PhotoImageInsert(System.Drawing.Image imgPhoto) { //将Image换成流数据,并保存为byte[] MemoryStream mstream = new MemoryStream(); imgPhoto.Save(mstream, System.Drawing.Imaging.ImageFormat.Bmp); byte[] byData = new Byte[mstream.Length]; mstream.Position = 0; mstream.Read(byData, 0, byData.Length); mstream.Close(); return byData; }好了,这样通过上面的方法就可以把图片换成Byte[]对象,然后就把这个对象保存到数据库中去就实现了把图片二进制格式保存到数据库中去了。下面我就谈谈如何把数据库中的图片读取出来,实际上这是一个相反的过程。 读取图片:把相应的字段换成Byte[]即:Byte[] bt=(Byte[])XXXX 1.参数是Byte[]类型,返回值是Image对象: public System.Drawing.Image ReturnPhoto(byte[] streamByte) { System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte); System.Drawing.Image img = System.Drawing.Image.FromStream(ms); return img; }2.参数是Byte[] 类型,没有返回值,这是针对asp.net中把图片从输出到网页上(Response.BinaryWrite) public void WritePhoto(byte[] streamByte) { // Response.ContentType 的默认值为默认值为“text/html” Response.ContentType = "image/GIF"; //图片输出的类型有: image/GIF image/JPEG Response.BinaryWrite(streamByte); }补充: 针对Response.ContentType的值,除了针对图片的类型外,还有其他的类型: Response.ContentType = "application/msword"; Response.ContentType = "application/x-shockwave-flash"; Response.ContentType = "application/vnd.ms-excel";另外可以针对不同的格式,用不同的输出类型以适合不同的类型: switch (dataread("document_type")) { case "doc": Response.ContentType = "application/msword"; case "swf": Response.ContentType = "application/x-shockwave-flash"; case "xls": Response.ContentType = "application/vnd.ms-excel"; case "gif": Response.ContentType = "image/gif"; case "Jpg": Response.ContentType = "image/jpeg"; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值