我需要一个非常简单的(*)在Flash中制作的图像编辑器,以便我的网页用户可以编辑图片,然后将它们保存到我的服务器。我开始尝试将这个项目保存为jpg或png格式的电影剪辑内容,但我在Google上找不到任何信息。你能给出如何开始的建议吗?如果你知道一些像这样的开源项目,请在这里分享。谢谢你的帮助!将MovieClip中的图片保存在FLASH中可能吗? (flash中的简单图像编辑器)
(*)非常简单的手段,调整大小,裁剪,添加文本和重叠其他图像。
我需要一个非常简单的(*)在Flash中制作的图像编辑器,以便我的网页用户可以编辑图片,然后将它们保存到我的服务器。我开始尝试将这个项目保存为jpg或png格式的电影剪辑内容,但我在Google上找不到任何信息。你能给出如何开始的建议吗?如果你知道一些像这样的开源项目,请在这里分享。谢谢你的帮助!将MovieClip中的图片保存在FLASH中可能吗? (flash中的简单图像编辑器)
(*)非常简单的手段,调整大小,裁剪,添加文本和重叠其他图像。
Flash不能直接访问用户的计算机,因为它们位于不同的安全沙箱中。如果您使用的是Adobe Air,则支持某些file-io内容,但我不确定这是如何工作的。
让人们保存图像的解决方法是将图像数据发送到服务器脚本(PHP,Perl,Python,无论...)并让脚本向用户呈现图像。如果使用header application/octet-stream,大多数用户代理会询问用户是否想保存文件(还有其他解决方法)。
Pixlr是这种交互的一个很好的例子。
as3corelib具有JPG和PNG编码器,您可以使用它们将DisplayObject转换为图像数据(通过BitmapData)。
https://github.com/mikechambers/as3corelib
你或许可以找到如何与图像保存到你的服务器结合一些例子或教程。
您可以通过FileReference.save(data:ByteArray/*generated by as3corelib image encoding class*/, name:String)
这听起来像你缺少步骤调用系统文件保存对话框的BitmapData.draw(myDisplayObject的)。
因此,例如,您有正在播放的影片剪辑,或来自网络摄像头的视频流,或任何显示对象。
你可以说:
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格式。
我希望有帮助!
Pixlr实际上是本地文件io,Flash Player 10支持该功能(您可以通过从网络断开连接并打开并保存文件来测试它)。 – 2010-11-11 23:12:48