在Fireworks中以编程方式切片图像并在整个透明背景上导出,以形成分层效果

Programmatically slicing an image in Fireworks and exporting on whole transparent background, to form a layering effect

本文关键字:分层 背景 编程 Fireworks 方式 切片 图像 透明      更新时间:2023-09-26

我有一张由许多小图片组成的大图,我想把它分割并导出。这可以通过切片完成,但不幸的是,这将只导出裁剪后的图像——我希望每次导出时都显示整个画布,切片在适当的位置,这意味着我可以覆盖每个单独的导出并拥有原始图片,但在单独的图层中。

这不能用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)只是一种快速,肮脏的零填充方法,绝不是最快的方法—但是在这样的一次性脚本中,没有问题。