首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Flex 4 fileReference选定图像文件尺寸(宽度和高度)

Flex 4 fileReference选定图像文件尺寸(宽度和高度)
EN

Stack Overflow用户
提问于 2010-08-09 19:31:08
回答 3查看 7.6K关注 0票数 3

我使用fileReference.browse()从硬盘中选择一个图像文件。

如何检查所选图像文件的宽度和高度?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-29 13:46:11

使用loadBytes()将fileReference.data加载到加载器中。然后你会得到: sourceBMP:Bitmap = loader.content as Bitmap;

下面是一个示例代码:

MXML部件:

代码语言:javascript
运行
复制
<fx:Declarations>
    <net:FileReference id="fileReference"
        select="fileReference_select(event);"
        complete="fileReference_complete(event);" />
</fx:Declarations>
<s:Button id="uplaodImageBtn"
    label="Upload Image"
    click="uplaodImageBtn_clickHandler()"/>

AS3部件:

代码语言:javascript
运行
复制
private function uplaodImageBtn_clickHandler() : void {
    var arr:Array = [];
    arr.push(new FileFilter("Images", ".gif;*.jpeg;*.jpg;*.png"));
    fileReference.browse(arr);
}

private function fileReference_select(evt:Event):void {
    fileReference.load();
}

private function fileReference_complete(event:Event):void {
    var loader:Loader = new Loader();
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete);
    loader.loadBytes(fileReference.data);
}

public function loader_complete (event:Event) : void {
    var sourceBMP:Bitmap = event.currentTarget.loader.content as Bitmap;
    Alert.show(sourceBMP.width + ', ' +sourceBMP.height);
}
票数 8
EN

Stack Overflow用户

发布于 2010-08-09 20:15:57

从Flex的环境来看,我非常确定,一旦你从浏览器那里得到结果,它就只是一个byteArray。理论上,如果使用byteArray作为图像标记源,那么一旦将图像添加到容器中,就可以获得图像的高度和宽度。

否则,我不相信有一种简单的方法可以使用Flex从本地文件中获取这样的元数据信息。

票数 1
EN

Stack Overflow用户

发布于 2011-10-14 05:41:21

如果您等待图像源属性更新,您应该能够读取image.sourceWidth和image.sourceHeight。这将为您提供未缩放的原始值。

代码语言:javascript
运行
复制
<fx:Script>
    <![CDATA[

        import mx.events.FlexEvent;     

        private function browseImage(event:MouseEvent):void {
            var arr:Array = [];
            arr.push(new FileFilter("Images", ".gif;*.jpeg;*.jpg;*.png"));
            imageFileReference.browse(arr);         
        }

        private function imageSelect(evt:Event):void {
            imageFileReference.load();
        }

        private function imageComplete(evt:Event):void {
            image.source = smallImageFileReference.data;
            image.addEventListener(FlexEvent.UPDATE_COMPLETE, getImageSize);                
        }

        private function getImageSize(evt:FlexEvent):void {
            image.removeEventListener(FlexEvent.UPDATE_COMPLETE, getImageSize);         
            imageWidth.text = image.sourceWidth + "px";
            imageHeight.text = image.sourceHeight + "px";
        }
    ]]>

</fx:Script>

<fx:Declarations>
    <net:FileReference id="imageFileReference" 
        select="imageSelect(event)" 
        complete="imageComplete(event)"/>
</fx:Declarations>

<s:VGroup width="100%" height="100%">

    <s:HGroup width="100%" verticalAlign="middle">
        <s:Label fontWeight="bold" text="Width:" />
        <mx:Text id="imageWidth" />
    </s:HGroup> 

    <s:HGroup width="100%" verticalAlign="middle">
        <s:Label fontWeight="bold" text="Height:" />
        <mx:Text id="imageHeight" />
    </s:HGroup>

    <s:Image id="image" maxHeight="200" maxWidth="200" />
    <s:Button label="Browse for Image" click="browseImage(event)" />

</s:VGroup>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3439532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档