Flash上传图片客户端大小调整

20
有没有人知道如何使用Flash进行客户端图像调整大小?
例如: 客户端选择一个大小为1200x800的图像,在上传前,Flash将它缩小一半或者其他方式。
有什么想法吗?
7个回答

15

我听说过,虽然调整大小后的图像质量不好,那还有什么用! - Aklin
它是开源的,因此您始终可以改进它。例如:使用Emscripten编译ImageMagick,您将获得大量选项来提高图像质量。 - develCuy

10

4

该项目已不再活跃,但是它是开源的。然而,它在上传时会将所有图像转换为JPG文件。如果您想上传线条艺术类型的PNG文件(因为质量会受到影响),这将是一个问题。 - Chris

1

此功能已不再支持,将无法上传BMP文件。 - Chris

1

Silverlight、ActiveX和Java可以完全在客户端完成此操作。如果您必须使用Flash,则需要使用尚未普及的Flash 10。以下是来自Flash Cafe的示例,演示了如何将图像上传到Flash,然后在客户端调整大小

Flash 8或9中的其他选项涉及服务器端调整大小脚本,在大多数情况下会失去其意义。


1
你需要创建一个变换矩阵,然后使用它将原始位图绘制到一个新的位图中。这里是一个我正在打字而未测试的想法:
function resize(obm:BitmapData, scale:Number): BitmapData {
   var resizeMatrix:Matrix = new Matrix();
   resizeMatrix.scale(scale, scale);

   var rbm:BitmapData = new BitmapData(obm.width * scale, obm.height * scale);
   rbm.draw(obm, resizeMatrix);

   return rbm;
}

我对结果的质量不做任何保证。我记得以前尝试过这个,不喜欢结果,然后放弃了...


0

SwfUpload 的最新版本可以在客户端使用 Flash 进行图像调整。这是一个非常有用的工具,尽管像显示上传进度这样的额外功能可能会有些棘手。

http://code.google.com/p/swfupload/


1
看起来这个项目可能已经死了。自2010年3月以来没有更新,v2.5是“beta 3”,还有一些未解决的问题-请参见http://code.google.com/p/swfupload/issues/list。 - Chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接