/**
* @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);
推荐使用:
#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);
推荐使用:
#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);