/**
* @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);