我有以下功能:
function saveLayerGIF(layer, lname, path, shouldMerge) {
activeDocument.activeLayer = layer;
dupLayers();
if (shouldMerge === undefined || shouldMerge === true) {
activeDocument.mergeVisibleLayers();
}
activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);
var saveFile= File(path +"/assets/"+lname);
SaveForWebGIF(saveFile);
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
这给了我我需要的图层并指定了某些东西,比如应该放置导出文件的位置,例如:
现在我有一个不同的功能,它执行进入“保存为 Web”菜单并使用设置参数导出 GIF 的任务:
function SaveForWebGIF(saveFile) {
var sfwOptions = new ExportOptionsSaveForWeb();
sfwOptions.format = SaveDocumentType.COMPUSERVEGIF;
sfwOptions.transparency = 1;
sfwOptions.includeProfile = false;
sfwOptions.interlaced = 1;
sfwOptions.optimized = true;
sfwOptions.ColorReductionType = ColorReductionType.SELECTIVE;
sfwOptions.dither = Dither.NONE;
sfwOptions.ditherAmount = 80;
sfwOptions.webSnap = 0;
sfwOptions.colors = 128;
activeDocument.exportDocument(saveFile, ExportType.SAVEFORWEB, sfwOptions);
}
图像被正确导出并且是 gif 格式。它也有 gif 图像中的两个帧,但它们只是放在彼此之上,没有动画发生。
如何以编程方式导出 gif 图像?在运行导出之前,我是否需要先循环遍历时间轴中的帧并以某种方式组合它们? gif 设置为永远循环。