批量图像修剪

时间:2011-11-16 13:58:51

标签: flash actionscript-3 image-processing jsfl xfl

我有一个包含大量图片的Flash fla文件。每个图像的大部分由透明像素组成,其中有一个可视对象。此时的每个图像都在{x:0,y:0}。

我想将图像的透明像素修剪到最小边界框,但要将对象保持在同一个全局位置。这需要将修剪后的图像移动到未修剪图像中对象的全局位置。

这不是一个问题,但是图像全部包含在fla中的事实是问题所在。我目前看到的选项是:

  • 调查JSFL,Bitmap对象有一个getPixels,这与选择和删除操作相结合可以起作用

  • 将fla保存到xfl并用Ruby +图像处理lib枚举图像和相关的xml

问题:

  • 如果在JSFL中可以执行此操作,是否有人事先知道?
  • 有没有人对xfl文件进行过多次自动处理?
  • 是否有可以执行此修剪操作的现成图像处理器?

3 个答案:

答案 0 :(得分:1)

应该可以使用像Ruby这样的语言来查找xfl项目目录结构中的所有图像文件,并使用像ImageMagick这样的程序进行编辑(它是免费的,可以使用各种脚本语言)。

这家伙很好地解释了如何从XFL文档访问您的资产: http://blog.mencio.com/?p=121

以下是关于在ImageMagick论坛上删除边框像素的链接: http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=11103&start=0

希望这足以让你开始。

答案 1 :(得分:0)

您可能希望在使用图像时尝试在ActionScript中自动进行修剪。将图像颜色移位为单色,并使用像素方法识别边界区域。这是一种使用here的类似技术。

答案 2 :(得分:0)

worked this problem out in Photoshop。使用PS的脚本语言,选择可以有多个区域,您可以通过代码访问这些“孤岛”。

在上面的示例中,我(自动)找到了所有单独岛屿的{x,y}位置,修剪了岛屿的图形,并将每个岛屿保存为单独的图像文件。 {x,y}位置成为文件名的一部分。我没有在Flash中构建JSFL部分,它会读取文件名并根据名称中的{x,y}定位它们;而是手工完成。

如果您可以导出所有图像,则可以使用此PS脚本查找位置并裁剪图像。编写JSFL脚本来定位图像将是一项相当艰巨的任务。