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

时间:2009-01-10 15:31:21

标签: flash image-processing upload

是否有人了解如何使用闪存调整客户端图像大小。

实施例: 客户选择1200x800的图像,在上传之前,flash会把它变成一半或者其他东西。

有什么想法吗?

7 个答案:

答案 0 :(得分:16)

Plupload是Opensource,具有良好的文档并支持多种平台,包括Gears和HTML5!

http://www.plupload.com/index.php
http://www.plupload.com/example_all_runtimes.php

啊,是的,它支持在上传之前调整图像大小。最接近aurigma的选项,但是免费:)

答案 1 :(得分:10)

看看我写的脚本: image resizing at client side

答案 2 :(得分:4)

http://www.shift8creative.com/projects/agile-uploader/index.html

我刚完成这个小项目 - 免费使用。它不会真正允许最终用户选择大小,但您可以传递最大宽度和最大高度约束。也许你可以使用不同的选项制作多个页面/嵌入。

答案 3 :(得分:1)

Silverlight,ActiveX和Java可以完全在客户端执行此操作。如果必须使用Flash,则需要使用目前尚不普及的Flash 10。以下是来自Flash Cafe的uploading an image to Flash then resizing it on the client的示例。

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

答案 4 :(得分: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;
}
但是,我没有对结果的质量提出任何要求。我想我记得在过去尝试这个,不喜欢结果,并且撑起......

答案 5 :(得分:1)

我正在使用http://www.resize-before-upload.com的flash上​​传程序,效果很好:)

答案 6 :(得分:0)

最新版本的 SwfUpload 会调整客户端图像大小(使用Flash)。一个非常有用的工具,虽然显示上传进度等额外内容可能会有点繁琐。

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