检查上传的图像分辨率和客户端的详细信息

时间:2011-05-30 05:01:21

标签: flex actionscript-3 flex4 flash

在flex中,我们通常会从flex端上传图像并将其上传到服务器, 我想知道,我们可以做一些细节检查,比如我想在上传到服务器之前找出图像分辨率(在客户端),

将有两个利润,首先客户端不需要等待很长时间才能上传图像,如果在服务器端找到图像分辨率,那么它会占用时间,甚至图像也是如此被上传的不是预期的决议

第二,用户互动&与flex应用程序的界面将得到改进,

所以,请从flex端给出一些关于这种检查的想法

4 个答案:

答案 0 :(得分:1)

我想你是在谈论桌面应用。否则你将无法触及任何本地文件(你只能初始化它的uppload到服务器)。

要使用jpg和png,您可以使用as3corelib的com.adobe.images包。 Trere能够获得图像的高度/宽度或分辨率。

虽然我相信最好用服务器端的图像进行操作

答案 1 :(得分:1)

如果您指的是加载到Flex应用中的位图的宽度/高度测量值, width / height存储在BitmapData结构中 http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/BitmapData.html

对于Image flex控件,可以使用构造访问它:

// image_control is an instance of mx.controls.Image
var width:Number = 0;
var height:Number = 0;
if (image_control.content is Bitmap)
{
   height= (image_control.content as Bitmap).bitmapData.width;
   height= (image_control.content as Bitmap).bitmapData.height;
}

答案 2 :(得分:1)

对于flex,您可以使用FileReference.browse函数从硬盘加载文件。如果你想检查图像的宽度和高度,你可以参考Dmitry Sapelnikov的答案。如果要检查图像的总字节数,可以尝试:

var bitmapByteSize:int = bitmap.bitmapData.getPixels(bitmap.bitmapData.rect).length;

仅检查图像的分辨率可能不够。如果您需要修改图像,可以查看以下内容: http://marstonstudio.com/2007/10/19/how-to-take-a-snapshot-of-a-flash-movie-and-automatically-upload-the-jpg-to-a-server-in-three-easy-steps/

它可能会给你一些提示。

答案 3 :(得分:0)

您的Flex应用是否是桌面应用?如果是这样,您可以先从用户的硬盘驱动器加载文件,例如:http://mariusht.com/blog/2009/04/01/loading-local-images-directly-into-flash-player-10/

然后在将其发送到服务器之前获取宽度和高度(可能是获取大小的方法)。

顺便说一句,要在网络上显示的任何图像的分辨率始终为72 DPI。例如,您无法更改jpeg或png的分辨率,但可以以不同的分辨率打印它们。我认为你实际上在寻找尺寸(宽度/高度)。