Skip to main content
Participating Frequently
January 29, 2026
Question

Hey there, does anyone know of a script to writes the size to the description. Not sure that can still be done in bridge

  • January 29, 2026
  • 1 reply
  • 6 views

This process would save me alot of time,  I know I used to use a similar script.  If not, if yall could send me in the direction of how to make my own at this point.

    1 reply

    Legend
    January 30, 2026

    Writing metadata to the description field is easy. Below is a sample script for editing description, you can skip the dialog window and just do it directly. Get the dimensions using the following:

    var fileW = myFile.core.quickMetadata.width;
    var fileH = myFile.core.quickMetadata.height;
    #target bridge
    if(BridgeTalk.appName == 'bridge'){
    var descCmd = MenuElement.create('command', 'Edit Description...', 'after Thumbnail/Open', this.menuID); //add to Contextual menu
    }

    descCmd.onSelect = function(){
    descMain();
    }

    descMain = function(){
    try{
    var descThumbs = app.document.selections; //get selected thumbnails
    if(!descThumbs.length) return; //nothing selected
    var descr = '';
    if(!descThumbs[0].hasMetadata) return; //no metadata
    var descMeta = descThumbs[0].synchronousMetadata;
    var descXMP = new XMPMeta(descMeta.serialize());
    if(descXMP.doesPropertyExist(XMPConst.NS_DC, 'description')){
    descr = descMeta.read(XMPConst.NS_DC, 'description');
    descr = descr.toString();
    }
    else{
    descr = '';
    }
    descWindow = new Window ('palette', 'Edit Description', undefined);
    descPanel = descWindow.add('panel', undefined, '');
    descPanel.orientation = 'column';
    descPanel.alignChildren = ['left', 'top'];
    descPanel.lbl1 = descPanel.add('statictext', undefined, 'Description:');
    descPanel.lbl1.graphics.font = 'palette-bold';
    descPanel.txt1 = descPanel.add('edittext {justify:"left"}', undefined, '');
    descPanel.txt1.preferredSize = [350, 80];
    descPanel.txt1.text = descr;
    descPanel.grp1 = descPanel.add('group', undefined, '');
    descPanel.grp1.preferredSize = [350, 50];
    descPanel.grp1.orientation = 'row';
    descPanel.grp1.alignment = ['fill', 'fill'];
    descPanel.grp1.margins = [30, 20, 0, 0];
    descPanel.grp1.button1 = descPanel.grp1.add('button', undefined, 'Cancel', {name: 'cancel'});
    descPanel.grp1.button2 = descPanel.grp1.add('button', undefined, 'Apply Changes', {name: 'ok'});
    descPanel.grp1.button2.enabled = false;

    descPanel.txt1.onChanging = function(){
    descPanel.grp1.button2.enabled = true;
    }

    descPanel.grp1.button1.onClick = function(){
    descWindow.close();
    }

    descPanel.grp1.button2.onClick = function(){
    descr = descPanel.txt1.text;
    descWindow.close();
    for(var a in descThumbs){ //loop through thumbs
    if(!descThumbs[a].container){
    try{
    descMeta = descThumbs[a].synchronousMetadata;
    descXMP = new XMPMeta(descMeta.serialize());
    descXMP.deleteProperty(XMPConst.NS_DC, 'description');
    descXMP.setLocalizedText(XMPConst.NS_DC, 'description', null, 'x-default', descr);
    var descUpdatedPacket = descXMP.serialize(XMPConst.SERIALIZE_OMIT_PACKET_WRAPPER | XMPConst.SERIALIZE_USE_COMPACT_FORMAT);
    descThumbs[a].metadata = new Metadata(descUpdatedPacket); //write to file
    }
    catch(e){
    Window.alert(e + e.line);
    }
    }
    }
    }
    descWindow.layout.layout(true);
    descWindow.show();
    descPanel.txt1.active = true;
    }
    catch(e){
    Window.alert(e + e.line);
    }
    }