573
文章
·
32967
阅读
573
文章
·
32967
阅读

有59人阅读过 ps文件特别大怎么办
发布于2021/04/12 更新于2021/04/12
[ 教程仅保证更新时有效,请自行测试。]



用PS软件打开异常大的PS文件,点出菜单栏的”文件“>“脚本”>”浏览“,找到脚本文件,选择打开。



复制下面脚本内容,贴在txt里面,后缀名改成.jsx,制作成脚本文件。



脚本内容:

/**

 * @author Jason

 * @email jiangran@126.com

 * @name PsDeepCleaner

 * @description photoshop metadata deep clean script

 */


function deleteDocumentAncestorsMetadata() {

    if(String(app.name).search("Photoshop") > 0) {


        if(!documents.length) {

            alert("There are no open documents. Please open a file to run this script.")

            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("Clean finished.\n[doc name]:"+mainDocument.name+"\n[layer set]:"+layerSetStr);

}


try{

    if(confirm("Start to clean?")){

        start();

    }

} catch (e) {

    alert("Clean fail.e="+e)


文章对你有帮助吗?
  • 一般[0]
  • 很赞[0]
  • 没用[0]
  • 垃圾[0]
  • 无语[0]
扫一扫,手机浏览手机访问本站