我有一个由许多较小的图像组成的大图像,我想对其进行切片和导出。这可以通过切片来完成,但不幸的是,这只会导出裁剪后的图像——我希望每次导出都存在整个画布,切片就位,这意味着我可以覆盖每个单独的导出并拥有原始图片,但是在单独的层中。
Fireworks GUI 无法做到这一点。如何以编程方式执行此操作?
我有一个由许多较小的图像组成的大图像,我想对其进行切片和导出。这可以通过切片来完成,但不幸的是,这只会导出裁剪后的图像——我希望每次导出都存在整个画布,切片就位,这意味着我可以覆盖每个单独的导出并拥有原始图片,但是在单独的层中。
Fireworks GUI 无法做到这一点。如何以编程方式执行此操作?
首先创建一个白色矩形并将其放置在您要切片的第一个点上。选择它们并选择Modify -> Mask -> Group as Mask
。此时请确保您的画布也是透明的。现在,运行以下代码(我使用Fireworks Console):
for (y=0;y<14;y++){
for (x=0;x<20;x++) {
dom.exportTo("file:///C|/mypath/img/" + ("00"+y).slice(-2) + ("00"+x).slice(-2) + ".png", null);
if (x == 19) {
offsetX = -475;
if (y == 6) {
offsetY = 425;
} else {alert('y is 25');
offsetY = 25;
}
} else {
offsetX = 25;
offsetY = 0;
}
dom.moveElementMaskBy({x: offsetX, y: offsetY});
}
}
注意:这里的循环是根据我的需要定制的——你可以随意移动它,即使循环中有一个deltas
( {x: offsetX, y: offsetY}
) 数组。另请注意,这("00"+y).slice(-2)
只是一种快速、肮脏的填零方法,绝不是最快的方法——但在这样的一次性脚本中,没问题。