flex加载本地图片怎么获取到图片的详细信息
2016-08-25 00:12
363 查看
最近做到公司的一个项目就是要在flex加载本地图片的时候判断图片的尺寸,目的就是为了对图片尺寸作出限制,原本是写Java的,现在flex不熟悉没办法还得硬着头皮上,就查找资料看flex是怎么获取信息的,熟悉flex的就别嫌弃我这么笨了啊!
先直接上代码:
当组件加载完成进行初始化的时候,对数据文件添加监听,觉得为了自己方便,有必要将代码记录一遍。
每个FileReference对象都代码本地计算机上的一个数据文件,通过FileReference类的方法可以使应用程序本地加载或者保存数据文件,以及与远程服务器之间传输文件数据。其中包括browse()方法、upload()方法、download()方法、和save()方法。
1.browse()方法将打开一个对话框,提示用户选择一个或者多个要上传的文件,如果用户选择了一个或者多个,则创建了一个FileReference对象数组;
2.upload()方法可以将文件数据上传到远程服务器;
download()方法可以从服务器下载数据到本地,打开一个对话框,让用户选择要保存文件的位置,然后从服务器下载,将数据存储在新文件中;
3. load()使用browse()方法开始之前所选的文件中加载数据。知道browse()操作完成,即用户选择了文件,才能调用load()方法;
4.save()方法打开一个对话框,提示用户在本地文件系统上选择一个位置,然后将此文件数据保存到该指定位置;
其中代码中就用了browse()方法打开窗口让用户选择文件,load()方法就是让用户对本地文件进行访问。
FileReference类的属性包括了文件大小、类型、名称、创建者、创建日期和修改日期等信息,一般通过下面两种方式创建FileReference实例,
常见的就是NEW对象:
在使用loader加载数据时候,添加监听事件时候,一定是要给contentLoaderInfo属性添加,而不是给loader对象添加事件
上面代码效果图:
先直接上代码:
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init(event)"> <s:layout> <s:VerticalLayout gap="5"/> </s:layout> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <fx:Script> <![CDATA[ import mx.events.FlexEvent; private var fr:FileReference; private var imageType : FileFilter; private var loader :Loader = new Loader(); private var bitmap : Bitmap; protected function imageBut_clickHandler(event:MouseEvent):void { // TODO Auto-generated method stub fr.browse([imageType]); } protected function init(event:FlexEvent):void { // TODO Auto-generated method stub fr = new FileReference(); imageType =new FileFilter("Images (*.jpg, *.jpeg, *.png)", "*.jpg;*.jpeg;*.png"); fr.addEventListener(Event.SELECT,onSelect); fr.addEventListener(Event.COMPLETE,completeHandler); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onCompleteHandler); } private function onSelect(event:Event):void{ fr.load(); } private function onCompleteHandler(event:Event):void{ bitmap = Bitmap(loader.content); ofId.text = "尺寸: "+"width:"+bitmap.width+" height:"+bitmap.height; } private function completeHandler(event:Event):void{ loader.loadBytes(fr.data); imageid.source = fr.data; nameId.text="名称"+fr.name; sizeId.text ="大小"+ fr.size.toString(); } ]]> </fx:Script> <s:Button id="imageBut" click="imageBut_clickHandler(event)" label="加载图片"/> <s:Image id="imageid" /> <s:Label id="nameId"/> <s:Label id="sizeId"/> <s:Label id="ofId"/> </s:Application>
当组件加载完成进行初始化的时候,对数据文件添加监听,觉得为了自己方便,有必要将代码记录一遍。
每个FileReference对象都代码本地计算机上的一个数据文件,通过FileReference类的方法可以使应用程序本地加载或者保存数据文件,以及与远程服务器之间传输文件数据。其中包括browse()方法、upload()方法、download()方法、和save()方法。
1.browse()方法将打开一个对话框,提示用户选择一个或者多个要上传的文件,如果用户选择了一个或者多个,则创建了一个FileReference对象数组;
2.upload()方法可以将文件数据上传到远程服务器;
download()方法可以从服务器下载数据到本地,打开一个对话框,让用户选择要保存文件的位置,然后从服务器下载,将数据存储在新文件中;
3. load()使用browse()方法开始之前所选的文件中加载数据。知道browse()操作完成,即用户选择了文件,才能调用load()方法;
4.save()方法打开一个对话框,提示用户在本地文件系统上选择一个位置,然后将此文件数据保存到该指定位置;
其中代码中就用了browse()方法打开窗口让用户选择文件,load()方法就是让用户对本地文件进行访问。
FileReference类的属性包括了文件大小、类型、名称、创建者、创建日期和修改日期等信息,一般通过下面两种方式创建FileReference实例,
常见的就是NEW对象:
private var fr:FileReference = new FileReference();
在使用loader加载数据时候,添加监听事件时候,一定是要给contentLoaderInfo属性添加,而不是给loader对象添加事件
上面代码效果图:
相关文章推荐
- ios获取本地图片以及图片信息
- 获取其他进程加载模块的详细信息
- 102-资源打包,内存分配,内存泄漏,私有API,硬件信息的获取,使用imageName加载图片和使用imageWithContentsOfFile加载图片的场合优缺点及内存分析
- flex 点击按钮加载本地图片问题
- 获取图片属性详细信息
- 获取本地共享资源详细信息的源码
- android actionbar中share使用、图片详细信息获取
- 利用php获取图片完整Exif信息类 获取图片详细完整信息类
- 通过AFNetworking下载网络闪屏用的图片并存储到本地同时获取header头相关信息
- 获取本地音乐文件的专辑,图片,音乐信息
- flex4 RIA 获取本地图片文件并加载给img控件
- 用ImageInfoExtractor类在图片未加载时获取图片信息
- 利用php获取图片完整Exif信息类 获取图片详细完整信息类
- 以最省内存的方式把大图片加载到内存及获取Exif信息和获取屏幕高度和宽度的新方法
- 通过AFNetworking下载网络闪屏用的图片并存储到本地同时获取header头相关信息
- 自动扫描所有本地磁盘,获取所有图片信息
- Android -- 加载大图片到内存,从gallery获取图片,获取图片exif信息
- JavaScript怎么判断图片是否加载完成以便获取其尺寸
- 自动获取本地IP,通过IP来获取详细的地域信息
- javascript加载图片获取图片尺寸信息方法