░░░░░░░░░ photoshop脚本JS代码 ░░░░░░░░░

文件瘦身

/**
 * @author ecomcn.com
 * @name photoshop 文件瘦身
 */
function deleteDocumentAncestorsMetadata() {
    if(String(app.name).search("Photoshop") > 0) {
        if(!documents.length) {
            alert("没有打开的文档。请打开一个文件以运行此脚本。")
            return;
        }
        if (ExternalObject.AdobeXMPScript == undefined) ExternalObject.AdobeXMPScript = new ExternalObject("lib:AdobeXMPScript");
        var xmp = new XMPMeta( activeDocument.xmpMetadata.rawData);
        xmp.deleteProperty(XMPConst.NS_PHOTOSHOP, "DocumentAncestors");
        app.activeDocument.xmpMetadata.rawData = xmp.serialize();
        clearDocumentAncestorsForAllLayers(app.activeDocument);
        if (app.activeDocument !== mainDocument) {
            app.activeDocument.close(SaveOptions.SAVECHANGES);
        }else{
            app.activeDocument.save();
        }
    }
}
function clearDocumentAncestorsForAllLayers(doc) {
    try {
        if (doc == undefined) {
            return;
        }
        for (var i = 0; i < doc.layers.length; i++) {
            var curLayer = doc.layers[i];
            if (curLayer.typename != "ArtLayer") {
                clearDocumentAncestorsForAllLayers(curLayer);
                continue;
            }
            if (curLayer.kind == "LayerKind.SMARTOBJECT") {
                app.activeDocument.activeLayer = curLayer;
                
                var idplacedLayerEditContents = stringIDToTypeID("placedLayerEditContents");
                var actionDescriptor = new ActionDescriptor();
                executeAction(idplacedLayerEditContents, actionDescriptor, DialogModes.NO);
                if(app.activeDocument.activeLayer == curLayer){
                    continue;
                }
                deleteDocumentAncestorsMetadata()
                layerSetStr += ("\n"+curLayer.name)
            }
        }
    } catch (e) {
        alert("Layer clean fail.name="+doc+";e="+e)
    }
}
var layerSetStr = "";
var mainDocument = app.activeDocument;
function start(){
    deleteDocumentAncestorsMetadata();
    alert("瘦身完成!\n文档名:"+mainDocument.name+"\n图层组:"+layerSetStr);
}
try{
    if(confirm("开始瘦身并保存?")){
        start();
    }
} catch (e) {
    alert("Clean fail.e="+e)
}

 等比调整图片大小

#target photoshop
app.bringToFront

//定义一个变量[width],用来表示图像等比调整后的尺寸。
var width = 800;
var height = width*app.activeDocument.height/app.activeDocument.width;
//定义一个变量[resolution],用来表示图像调整后的分辨率。
var resolution = 72;
//定义一个变量[resampleMethod],用来表示图像调整后的重采样方法为自动模式。
var resampleMethod = ResampleMethod.AUTOMATIC;
//定义一个变量[amount],用来表示图像调整后的噪点值。
var amount = 50;
//使用[resizeImage]方法,来重新设置图像大小。
app.activeDocument.resizeImage(width, height, resolution, resampleMethod, amount);

jpg文件保存

推荐使用:

#target photoshop
app.bringToFront

saveFile = new File (app.activeDocument.fullName)
saveOptions = new JPEGSaveOptions();  //文件存储格式
saveOptions.embedColorProfile = true;
saveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
saveOptions.matte = MatteType.NONE;
saveOptions.quality = 7;  //文件存储品质
app.activeDocument.saveAs(saveFile, saveOptions, false,Extension.LOWERCASE); //覆盖(false)保存
app.activeDocument.close(); //关闭当前文档


其它:

#target photoshop
app.bringToFront
//定义文件存储位置
var saveln=new File (app.activeDocument.fullName)
//文件的存储格式选项
var options=JPEGSaveOptions
//定义是否保留原文件不动,只另存文件
var asCopy=true
//定义extensionType这个意思是文扩展名的大小写
var extensionType=Extension.LOWERCASE
app.activeDocument.saveAs(saveln,options,asCopy,extensionType)


//定义一个变量[document],用来表示Photoshop当前的活动文档。
var document = app.activeDocument;
//定义一个变量[fileOut],用来指定文件保存的路径。
var fileOut = new File(document.fullName);
//定义一个变量[options],用来指定图片保存的格式。
var options = JPEGSaveOptions;
//定义一个变量[asCopy],用来指定图片以副本的方式保存。
var asCopy = true;
//定义一个变量[extensionType],用来指定图片名称的后缀为小写。
var extensionType = Extension.LOWERCASE;
//使用[document]对象的[saveAs]方法保存当前图片。
document.saveAs(fileOut, options, asCopy, extensionType, quality);

png文件保存

推荐使用:

#target photoshop
app.bringToFront

saveFile = new File (app.activeDocument.fullName)
saveOptions = new PNGSaveOptions();  //文件存储格式
saveOptions.embedColorProfile = true;
saveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
saveOptions.matte = MatteType.NONE;
app.activeDocument.saveAs(saveFile, saveOptions, false,Extension.LOWERCASE); //覆盖(false)保存


其它:

#target photoshop
app.bringToFront
//定义文件存储位置
var saveln=new File (app.activeDocument.fullName)
//文件的存储格式选项
var options=PNGSaveOptions
//定义是否保留原文件不动,只另存文件
var asCopy=true
//定义extensionType这个意思是文扩展名的大小写
var extensionType=Extension.LOWERCASE
app.activeDocument.saveAs(saveln,options,asCopy,extensionType)


//定义一个变量[document],用来表示Photoshop当前的活动文档。
var document = app.activeDocument;
//定义一个变量[fileOut],用来指定文件保存的路径。
var fileOut = new File(document.fullName);
//定义一个变量[options],用来指定图片保存的格式。
var options = PNGSaveOptions;
//定义一个变量[asCopy],用来指定图片以副本的方式保存。
var asCopy = true;
//定义一个变量[extensionType],用来指定图片名称的后缀为小写。
var extensionType = Extension.LOWERCASE;
//使用[document]对象的[saveAs]方法保存当前图片。
document.saveAs(fileOut, options, asCopy, extensionType);