可以在FLASH中保存MovieClip中的图片吗? (flash中的简单图像编辑器)

时间:2010-11-11 21:12:06

标签: flash actionscript

我需要一个用Flash制作的非常简单的(*)图像编辑器,这样我的网页用户就可以编辑图片,然后将它们保存到我的服务器上。我正在开始这个项目试图保存为jpg或png电影剪辑的内容,但我没有在Google上找到任何信息。你能提出如何开始的建议吗?如果你知道像这样的一些开源项目,请在这里分享。谢谢你的帮助!

(*)非常简单意味着,调整大小,裁剪,添加文本和重叠其他图像。

4 个答案:

答案 0 :(得分:3)

Flash无法直接访问用户的计算机,因为它们位于不同的安全沙箱中。如果你正在使用Adobe Air,那么支持一些file-io的东西,但我不确定它是如何工作的。

允许人们保存图像的解决方法是将图像数据发送到服务器脚本(PHP,Perl,Python,等等......)并让脚本向用户显示图像。如果您使用标题application / octet-stream,大多数用户代理会询问用户是否要保存文件(还有其他解决方法)。

Pixlr就是这种互动的一个很好的例子。

答案 1 :(得分:3)

听起来你缺少的步骤是bitmapData.draw(myDisplayObject)。

例如,您正在播放正在播放的MovieClip,或者来自网络摄像头的视频流,或其他任何显示对象。

你可以说:

var bmd:BitmapData = new BitmapData(320, 240);
bmd.draw(MyMovieClip); // bmd now contains the image you're trying to save.

// then you use something like PNGEncoder.encode. As mentioned above, that comes from Mike Chambers - https://github.com/mikechambers/as3corelib
var byteArray:ByteArray = PNGEncoder.encode(bmd); // now you have a binary stream holding your image

从那里,保存机制取决于您。例如,您可以将该ByteArray传递给.php脚本,该脚本将其保存到服务器并返回URL。您可以使用FileReference.save - 其他答案中列出的任何选项。

关键是确保你有一个ByteArray,它是从包含你的图像的BitmapData对象构建的,编码成.png或.jpg格式。

我希望有所帮助!

答案 2 :(得分:1)

as3corelib具有JPG和PNG编码器,可用于将DisplayObject转换为图像数据(通过BitmapData)。

https://github.com/mikechambers/as3corelib

您可以找到一些示例或教程,了解如何将图像与将图像保存到服务器相结合。

答案 3 :(得分:0)

您可以通过FileReference.save(data:ByteArray/*generated by as3corelib image encoding class*/, name:String)

调用系统文件保存对话框