Copy link to clipboard
Copied
Bloated files that contain “excess” Photoshop DocumentAncestors metadata have been causing a few users some grief (65mb down to 110kb)!
Photoshop saving issue (FILES TOO LARGE)
There is a script for Photoshop to remove this metadata, however as this requires an open/save it is not great for files that contain lossy compression. Bridge is the obvious place to remove this metadata. I have hacked a different script to remove this DocumentAncestor metadata.
I don’t understand why Bridge requires a 2 step process! All this time I thought that the code was bad, when it was “working fine”.
Step 1: Run the Bridge script to remove DocumentAncestors metadata (the file size does not change, when it “should”)
Step 2: Apply a secondary metadata change in Bridge, such as adding/removing a temporary keyword, or rotating clockwise and then rotating back counterclockwise again to “force the image to reset”
The second step for whatever reason will force the file to update and take into account the removal of the DocumentAncestors metadata and then applies the file size reduction!
The code:
// https://forums.adobe.com/thread/290238
// https://forums.adobe.com/thread/1880847
// https://forums.adobe.com/thread/2340460
#target bridge // let EntendScript know what app the script is for
clearDocumentAncestors = {};// create an object
clearDocumentAncestors.execute = function(){// create a method for that object
var sels = app.document.selections;// store the array of selected files
for (var i = 0; i < sels.length; i++){//loop though that array
var md = sels.synchronousMetadata;// get the metadata for the file
md.namespace = "http://ns.adobe.com/photoshop/1.0/";// set the namespace
md.DocumentAncestors = " ";//set the porperty
}
}
// this script only works in bridge
if (BridgeTalk.appName == "bridge"){
//creage the munuItem
var menu = MenuElement.create( "command", "Clear DocumentAncestors in metadata", "at the end of Tools");
menu.onSelect = clearDocumentAncestors.execute;
}
Copy link to clipboard
Copied
Ok, deleted the old script out of the CC 2017 Startups folder, and placed it with the new one in it giving it the same title.
This time I did not call up extendscript
Same error as pictured when I start Bridge:
Copy link to clipboard
Copied
Am I supposed to have a "Purge Cache for Selected" script?
Copy link to clipboard
Copied
Paste the script from here into ExtendScript Toolkit then save it out to the relevant folder, this should then be a clean file and should work.
I still think you editors are not using plain text.
Copy link to clipboard
Copied
Ok, I got it to load successfully that way Thanks for staying with me. Now to try it on the testfiles.
Copy link to clipboard
Copied
Works successfully on the jpeg, but the psd keeps the 67 MB reading until I try the Rotate View command. Then it is 110 k.
Copy link to clipboard
Copied
Jive's edit function is acting up again.
I used to be able to create jsx scripts with Mac's TextEcit, but wiser to just use the Extendscript Toolkit. It does save me from the extra step of changing the extension to jsx
Copy link to clipboard
Copied
I’m having the same issue with copy direct from the forum pasted into ESTK (on a Mac).
I had to comment out line 17 in order to get the script to work (the first script works fine, it is the second one that has issues).
Not a big deal, still looking to see what the issue is, it is not obvious to me!
EDIT: Invisible characters if this helps…
Even copy/paste from Chrome to ESTK in Windows results in the same error when saved in Windows and then run on the Mac.
Copy link to clipboard
Copied
Stephen_A_Marsh, where i can download this script?
Copy link to clipboard
Copied
Forgot to link to the Photoshop script that can be setup for use with the Script Events Manager to auto run on open, save and export:
Inflated JPG File Size - Photoshop Document:Ancestors Metadata
Copy link to clipboard
Copied
I have just updated my blog with with all of the known solutions to this issue:
Copy link to clipboard
Copied
SuperMerlin as kindly donated some Photoshop code that will purge this metadata on an folder of JPG/TIF/PSD files, from Photoshop – without opening the files into Photoshop (now that does sound like some crazy voodoo magic!)
Re: How can I remove junk RAW DATA from file?
// https://forums.adobe.com/message/9671488#9671488
#target photoshop;
var inputFolder= Folder.selectDialog ("Please select folder to process");
if(inputFolder != null){
var fileList = inputFolder.getFiles(/\.(jpg|tif|psd)$/i);
for(var a in fileList){delFileAncestorsMeta(fileList);}
}
function delFileAncestorsMeta(selectedFile) {
if (ExternalObject.AdobeXMPScript == undefined) ExternalObject.AdobeXMPScript = new ExternalObject("lib:AdobeXMPScript");
var xmpFile = new XMPFile( selectedFile.fsName, XMPConst.FILE_UNKNOWN, XMPConst.OPEN_FOR_UPDATE | XMPConst.OPEN_USE_SMART_HANDLER );
var xmp = xmpFile.getXMP();
xmp.deleteProperty(XMPConst.NS_PHOTOSHOP, "DocumentAncestors");
if (xmpFile.canPutXMP(xmp)) {
xmpFile.putXMP(xmp);
xmpFile.closeFile(XMPConst.CLOSE_UPDATE_SAFELY);
}
};
Copy link to clipboard
Copied
thank you!!!
is it possible to include subfolders?
Copy link to clipboard
Copied
The Bridge script is working on selected files, not folders. It is beyond my current newb scripting abilities I am afraid, however I do have a work around…
Use the View menu > Show items from Subfolders command and also untick the Show folders command, then select all files and run the script.