是否可以在FLASH中保存电影剪辑中的图片?(flash中的简单图像编辑器)

是否可以在FLASH中保存电影剪辑中的图片?(flash中的简单图像编辑器),flash,actionscript,Flash,Actionscript,我需要一个非常简单的(*)图像编辑器在Flash中,这样我的网页用户可以编辑图片,然后保存到我的服务器。我正在开始这个项目,试图将电影剪辑的内容保存到jpg或png格式,但我没有在Google上找到任何信息。你能给出如何开始的建议吗?如果你知道一些像这样的开源项目,请在这里分享。谢谢你的帮助 (*)非常简单的方法是调整大小、裁剪、添加文本和重叠其他图像。Flash无法直接访问用户的计算机,因为它们位于不同的安全沙盒中。如果您使用的是AdobeAIR,则支持某些文件io内容,但我不确定这是如何工作

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


(*)非常简单的方法是调整大小、裁剪、添加文本和重叠其他图像。

Flash无法直接访问用户的计算机,因为它们位于不同的安全沙盒中。如果您使用的是AdobeAIR,则支持某些文件io内容,但我不确定这是如何工作的

允许人们保存图像的解决方法是将图像数据发送到服务器脚本(PHP、Perl、Python等等),并让脚本向用户呈现图像。如果使用头应用程序/八位字节流,大多数用户代理将询问用户是否要保存文件(还有其他解决方法)


是这种交互的一个很好的例子。

Flash无法直接访问用户的计算机,因为它们位于不同的安全沙盒中。如果您使用的是AdobeAIR,则支持某些文件io内容,但我不确定这是如何工作的

允许人们保存图像的解决方法是将图像数据发送到服务器脚本(PHP、Perl、Python等等),并让脚本向用户呈现图像。如果使用头应用程序/八位字节流,大多数用户代理将询问用户是否要保存文件(还有其他解决方法)


是这种交互的一个很好的例子。

as3corelib具有JPG和PNG编码器,您可以使用它们将DisplayObject转换为图像数据(通过BitmapData)


您可能会找到一些示例或教程,介绍如何将这些示例或教程与将图像保存到服务器相结合。

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


您可能会找到一些示例或教程,介绍如何将其与将图像保存到服务器相结合。

您可以通过
FileReference.save调用系统文件保存对话框(数据:ByteArray/*由as3corelib image encoding class*/,name:String生成)
您可以通过
FileReference.save调用系统文件保存对话框(数据:ByteArray/*由as3corelib图像编码类*生成,名称:String)

听起来您缺少的步骤是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—其他答案中列出的任何选项

关键是确保从包含图像的BitmapData对象构建ByteArray,并将其编码为.png或.jpg格式


我希望这会有所帮助!

听起来您缺少的步骤是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—其他答案中列出的任何选项

关键是确保从包含图像的BitmapData对象构建ByteArray,并将其编码为.png或.jpg格式


我希望这会有帮助!

Pixlr实际上提供本地文件io,Flash Player 10对此有支持(您可以通过断开网络连接并仍然打开和保存文件来进行测试)。Pixlr实际上提供本地文件io,Flash Player 10对此有支持(您可以通过断开网络连接并仍然打开和保存文件来进行测试)。