1

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

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

这不是什么大问题,但图像都包含在 fla 中的事实是问题所在。我目前看到的选项是:

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

  • 将 fla 保存到 xfl 并使用 Ruby + 图像处理库之类的东西枚举图像和关联的 xml

问题:

  • 有谁知道在 JSFL 中是否可以进行此操作?
  • 有没有人对 xfl 文件进行过很多自动化处理?
  • 是否有现成的图像处理器可以执行此修剪操作?
4

3 回答 3

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

希望这足以让你开始。

于 2011-11-16T22:03:52.413 回答
0

您可能想尝试在使用图像时在 ActionScript 中自动进行修剪。将图像颜色转换为单一颜色并使用像素方法来识别边界区域。这是这里使用的类似技术。

于 2011-11-16T21:57:31.550 回答
0

在 Photoshop 中解决了这个问题。使用PS的脚本语言,一个选区可以有多个区域,你可以通过代码访问这些“孤岛”。

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

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

于 2011-12-18T00:34:04.017 回答