CC 14.2 Smart Objects, Relative Path?

Hi,
The Linked SO's are very welcome, however as far as I can tell we're still stuck with absolute file paths. Is this right; there's no way to map to document relative paths?

There are not two Place items in the menu File.  Place Embedded and Place Linked this had me worried because I use  the old menu FIle>Place in many of my scripts.  The good news for was my scripts still worked.   I use ScriptListener code for Place in my scripts so I went about capturing "Place Embedded" and "Place Link" compare them to the old "Place" All three do record full Path so I'm quite sure it would have to be and most likely you can not move file and expect things to work.  To me a relative path would not work for smart object layer has pixels rendered for the image file be it layers  have ACR setting if its RAW. It has to be a particular file.  The Path can not change neither Windows  and OSX have an object oriented file system.
// ========= Place Embedded Photoshop CC 14.2 =======    // ========Place Linked Photoshop CC 14.2============  // ========Place prior Photoshop CC 14.2============================
var idPlc = charIDToTypeID( "Plc " );                                          var idPlc = charIDToTypeID( "Plc " );                                          var idPlc = charIDToTypeID( "Plc " );
    var desc34 = new ActionDescriptor();                                           var desc37 = new ActionDescriptor();                                           var desc5 = new ActionDescriptor();
    var idnull = charIDToTypeID( "null" );                                         var idnull = charIDToTypeID( "null" );                                         var idnull = charIDToTypeID( "null" );
    desc34.putPath( idnull, new File( "Path\\Name" ) );                            desc37.putPath( idnull, new File( "Path\\Name" ) );                            desc5.putPath( idnull, new File( "Path\\Name" ) );
    var idOpAs = charIDToTypeID( "OpAs" );
        var desc35 = new ActionDescriptor();
        var idCMod = charIDToTypeID( "CMod" );
        desc35.putString( idCMod, """Canon EOS-1D Mark II""" );
        var idSett = charIDToTypeID( "Sett" );
        var idSett = charIDToTypeID( "Sett" );
        var idCst = charIDToTypeID( "Cst " );
        desc35.putEnumerated( idSett, idSett, idCst );
        var idWBal = charIDToTypeID( "WBal" );
        var idWBal = charIDToTypeID( "WBal" );
        var idAsSh = charIDToTypeID( "AsSh" );
        desc35.putEnumerated( idWBal, idWBal, idAsSh );
        var idTemp = charIDToTypeID( "Temp" );
        desc35.putInteger( idTemp, 5500 );
        var idTint = charIDToTypeID( "Tint" );
        desc35.putInteger( idTint, 6 );
        var idAWBV = charIDToTypeID( "AWBV" );
        desc35.putInteger( idAWBV, 134348800 );
        var idCtoG = charIDToTypeID( "CtoG" );
        desc35.putBoolean( idCtoG, false );
        var idStrt = charIDToTypeID( "Strt" );
        desc35.putInteger( idStrt, 0 );
        var idShrp = charIDToTypeID( "Shrp" );
        desc35.putInteger( idShrp, 25 );
        var idLNR = charIDToTypeID( "LNR " );
        desc35.putInteger( idLNR, 0 );
        var idCNR = charIDToTypeID( "CNR " );
        desc35.putInteger( idCNR, 25 );
        var idVigA = charIDToTypeID( "VigA" );
        desc35.putInteger( idVigA, 0 );
        var idBlkB = charIDToTypeID( "BlkB" );
        desc35.putInteger( idBlkB, 0 );
        var idRHue = charIDToTypeID( "RHue" );
        desc35.putInteger( idRHue, 0 );
        var idRSat = charIDToTypeID( "RSat" );
        desc35.putInteger( idRSat, 0 );
        var idGHue = charIDToTypeID( "GHue" );
        desc35.putInteger( idGHue, 0 );
        var idGSat = charIDToTypeID( "GSat" );
        desc35.putInteger( idGSat, 0 );
        var idBHue = charIDToTypeID( "BHue" );
        desc35.putInteger( idBHue, 0 );
        var idBSat = charIDToTypeID( "BSat" );
        desc35.putInteger( idBSat, 0 );
        var idVibr = charIDToTypeID( "Vibr" );
        desc35.putInteger( idVibr, 23 );
        var idHA_R = charIDToTypeID( "HA_R" );
        desc35.putInteger( idHA_R, 0 );
        var idHA_O = charIDToTypeID( "HA_O" );
        desc35.putInteger( idHA_O, 0 );
        var idHA_Y = charIDToTypeID( "HA_Y" );
        desc35.putInteger( idHA_Y, 0 );
        var idHA_G = charIDToTypeID( "HA_G" );
        desc35.putInteger( idHA_G, 0 );
        var idHA_A = charIDToTypeID( "HA_A" );
        desc35.putInteger( idHA_A, 0 );
        var idHA_B = charIDToTypeID( "HA_B" );
        desc35.putInteger( idHA_B, 0 );
        var idHA_P = charIDToTypeID( "HA_P" );
        desc35.putInteger( idHA_P, 0 );
        var idHA_M = charIDToTypeID( "HA_M" );
        desc35.putInteger( idHA_M, 0 );
        var idSA_R = charIDToTypeID( "SA_R" );
        desc35.putInteger( idSA_R, 0 );
        var idSA_O = charIDToTypeID( "SA_O" );
        desc35.putInteger( idSA_O, 0 );
        var idSA_Y = charIDToTypeID( "SA_Y" );
        desc35.putInteger( idSA_Y, 0 );
        var idSA_G = charIDToTypeID( "SA_G" );
        desc35.putInteger( idSA_G, 0 );
        var idSA_A = charIDToTypeID( "SA_A" );
        desc35.putInteger( idSA_A, 0 );
        var idSA_B = charIDToTypeID( "SA_B" );
        desc35.putInteger( idSA_B, 0 );
        var idSA_P = charIDToTypeID( "SA_P" );
        desc35.putInteger( idSA_P, 0 );
        var idSA_M = charIDToTypeID( "SA_M" );
        desc35.putInteger( idSA_M, 0 );
        var idLA_R = charIDToTypeID( "LA_R" );
        desc35.putInteger( idLA_R, 0 );
        var idLA_O = charIDToTypeID( "LA_O" );
        desc35.putInteger( idLA_O, 0 );
        var idLA_Y = charIDToTypeID( "LA_Y" );
        desc35.putInteger( idLA_Y, 0 );
        var idLA_G = charIDToTypeID( "LA_G" );
        desc35.putInteger( idLA_G, 0 );
        var idLA_A = charIDToTypeID( "LA_A" );
        desc35.putInteger( idLA_A, 0 );
        var idLA_B = charIDToTypeID( "LA_B" );
        desc35.putInteger( idLA_B, 0 );
        var idLA_P = charIDToTypeID( "LA_P" );
        desc35.putInteger( idLA_P, 0 );
        var idLA_M = charIDToTypeID( "LA_M" );
        desc35.putInteger( idLA_M, 0 );
        var idSTSH = charIDToTypeID( "STSH" );
        desc35.putInteger( idSTSH, 0 );
        var idSTSS = charIDToTypeID( "STSS" );
        desc35.putInteger( idSTSS, 0 );
        var idSTHH = charIDToTypeID( "STHH" );
        desc35.putInteger( idSTHH, 0 );
        var idSTHS = charIDToTypeID( "STHS" );
        desc35.putInteger( idSTHS, 0 );
        var idSTB = charIDToTypeID( "STB " );
        desc35.putInteger( idSTB, 0 );
        var idPC_S = charIDToTypeID( "PC_S" );
        desc35.putInteger( idPC_S, 0 );
        var idPC_D = charIDToTypeID( "PC_D" );
        desc35.putInteger( idPC_D, 0 );
        var idPC_L = charIDToTypeID( "PC_L" );
        desc35.putInteger( idPC_L, 0 );
        var idPC_H = charIDToTypeID( "PC_H" );
        desc35.putInteger( idPC_H, 0 );
        var idPC_one = charIDToTypeID( "PC_1" );
        desc35.putInteger( idPC_one, 25 );
        var idPC_two = charIDToTypeID( "PC_2" );
        desc35.putInteger( idPC_two, 50 );
        var idPC_three = charIDToTypeID( "PC_3" );
        desc35.putInteger( idPC_three, 75 );
        var idShpR = charIDToTypeID( "ShpR" );
        desc35.putDouble( idShpR, 1.000000 );
        var idShpD = charIDToTypeID( "ShpD" );
        desc35.putInteger( idShpD, 25 );
        var idShpM = charIDToTypeID( "ShpM" );
        desc35.putInteger( idShpM, 0 );
        var idPCVA = charIDToTypeID( "PCVA" );
        desc35.putInteger( idPCVA, 0 );
        var idGRNA = charIDToTypeID( "GRNA" );
        desc35.putInteger( idGRNA, 0 );
        var idCNRD = charIDToTypeID( "CNRD" );
        desc35.putInteger( idCNRD, 50 );
        var idCNRS = charIDToTypeID( "CNRS" );
        desc35.putInteger( idCNRS, 50 );
        var idLPEn = charIDToTypeID( "LPEn" );
        desc35.putInteger( idLPEn, 0 );
        var idMDis = charIDToTypeID( "MDis" );
        desc35.putInteger( idMDis, 0 );
        var idPerV = charIDToTypeID( "PerV" );
        desc35.putInteger( idPerV, 0 );
        var idPerH = charIDToTypeID( "PerH" );
        desc35.putInteger( idPerH, 0 );
        var idPerR = charIDToTypeID( "PerR" );
        desc35.putDouble( idPerR, 0.000000 );
        var idPerS = charIDToTypeID( "PerS" );
        desc35.putInteger( idPerS, 100 );
        var idPerA = charIDToTypeID( "PerA" );
        desc35.putInteger( idPerA, 0 );
        var idPerU = charIDToTypeID( "PerU" );
        desc35.putInteger( idPerU, 0 );
        var idAuCA = charIDToTypeID( "AuCA" );
        desc35.putInteger( idAuCA, 0 );
        var idExonetwo = charIDToTypeID( "Ex12" );
        desc35.putDouble( idExonetwo, 0.600000 );
        var idCronetwo = charIDToTypeID( "Cr12" );
        desc35.putInteger( idCronetwo, -10 );
        var idHionetwo = charIDToTypeID( "Hi12" );
        desc35.putInteger( idHionetwo, -19 );
        var idShonetwo = charIDToTypeID( "Sh12" );
        desc35.putInteger( idShonetwo, 19 );
        var idWhonetwo = charIDToTypeID( "Wh12" );
        desc35.putInteger( idWhonetwo, -3 );
        var idBkonetwo = charIDToTypeID( "Bk12" );
        desc35.putInteger( idBkonetwo, 28 );
        var idClonetwo = charIDToTypeID( "Cl12" );
        desc35.putInteger( idClonetwo, 19 );
        var idDfPA = charIDToTypeID( "DfPA" );
        desc35.putInteger( idDfPA, 0 );
        var idDPHL = charIDToTypeID( "DPHL" );
        desc35.putInteger( idDPHL, 30 );
        var idDPHH = charIDToTypeID( "DPHH" );
        desc35.putInteger( idDPHH, 70 );
        var idDfGA = charIDToTypeID( "DfGA" );
        desc35.putInteger( idDfGA, 0 );
        var idDPGL = charIDToTypeID( "DPGL" );
        desc35.putInteger( idDPGL, 40 );
        var idDPGH = charIDToTypeID( "DPGH" );
        desc35.putInteger( idDPGH, 60 );
        var idCrv = charIDToTypeID( "Crv " );
            var list9 = new ActionList();
            list9.putInteger( 0 );
            list9.putInteger( 0 );
            list9.putInteger( 255 );
            list9.putInteger( 255 );
        desc35.putList( idCrv, list9 );
        var idCrvR = charIDToTypeID( "CrvR" );
            var list10 = new ActionList();
            list10.putInteger( 0 );
            list10.putInteger( 0 );
            list10.putInteger( 255 );
            list10.putInteger( 255 );
        desc35.putList( idCrvR, list10 );
        var idCrvG = charIDToTypeID( "CrvG" );
            var list11 = new ActionList();
            list11.putInteger( 0 );
            list11.putInteger( 0 );
            list11.putInteger( 255 );
            list11.putInteger( 255 );
        desc35.putList( idCrvG, list11 );
        var idCrvB = charIDToTypeID( "CrvB" );
            var list12 = new ActionList();
            list12.putInteger( 0 );
            list12.putInteger( 0 );
            list12.putInteger( 255 );
            list12.putInteger( 255 );
        desc35.putList( idCrvB, list12 );
        var idCamP = charIDToTypeID( "CamP" );
        desc35.putString( idCamP, """Adobe Standard""" );
        var idCP_D = charIDToTypeID( "CP_D" );
        desc35.putString( idCP_D, """B0393704628CAFDD09F0DE7684972186""" );
        var idPrVe = charIDToTypeID( "PrVe" );
        desc35.putInteger( idPrVe, 101122048 );
        var idRtch = charIDToTypeID( "Rtch" );
        desc35.putString( idRtch, """""" );
        var idREye = charIDToTypeID( "REye" );
        desc35.putString( idREye, """""" );
        var idLCs = charIDToTypeID( "LCs " );
        desc35.putString( idLCs, """""" );
        var idUpri = charIDToTypeID( "Upri" );
        desc35.putString( idUpri, """""" );
        var idCrpT = charIDToTypeID( "CrpT" );
        desc35.putDouble( idCrpT, 0.000000 );
        var idCrpL = charIDToTypeID( "CrpL" );
        desc35.putDouble( idCrpL, 0.000000 );
        var idCrpB = charIDToTypeID( "CrpB" );
        desc35.putDouble( idCrpB, 0.000000 );
        var idCrpR = charIDToTypeID( "CrpR" );
        desc35.putDouble( idCrpR, 0.000000 );
        var idCrpA = charIDToTypeID( "CrpA" );
        desc35.putDouble( idCrpA, 0.000000 );
        var idClrS = charIDToTypeID( "ClrS" );
        var idClrS = charIDToTypeID( "ClrS" );
        var idProP = charIDToTypeID( "ProP" );
        desc35.putEnumerated( idClrS, idClrS, idProP );
        var idBtDp = charIDToTypeID( "BtDp" );
        var idBtDp = charIDToTypeID( "BtDp" );
        var idBDonesix = charIDToTypeID( "BD16" );
        desc35.putEnumerated( idBtDp, idBtDp, idBDonesix );
        var idRStF = charIDToTypeID( "RStF" );
        var idRStF = charIDToTypeID( "RStF" );
        var idRFNo = charIDToTypeID( "RFNo" );
        desc35.putEnumerated( idRStF, idRStF, idRFNo );
        var idRslt = charIDToTypeID( "Rslt" );
        desc35.putDouble( idRslt, 300.000000 );
        var idReUn = charIDToTypeID( "ReUn" );
        var idReUn = charIDToTypeID( "ReUn" );
        var idPpIn = charIDToTypeID( "PpIn" );
        desc35.putEnumerated( idReUn, idReUn, idPpIn );
        var idOSM = charIDToTypeID( "OSM " );
        var idOSM = charIDToTypeID( "OSM " );
        var idOSMN = charIDToTypeID( "OSMN" );
        desc35.putEnumerated( idOSM, idOSM, idOSMN );
        var idOrnt = charIDToTypeID( "Ornt" );
        desc35.putInteger( idOrnt, 3 );
        var idSnap = charIDToTypeID( "Snap" );
        desc35.putString( idSnap, """""" );
    var idAdobeCameraRaw = stringIDToTypeID( "Adobe Camera Raw" );
    desc34.putObject( idOpAs, idAdobeCameraRaw, desc35 );
                                                                                   var idLnkd = charIDToTypeID( "Lnkd" );
                                                                                   desc37.putBoolean( idLnkd, true );
                                                                                   var idOpAs = charIDToTypeID( "OpAs" );
                                                                                       var desc38 = new ActionDescriptor();
                                                                                   var idnull = charIDToTypeID( "null" );
                                                                                   desc37.putObject( idOpAs, idnull, desc38 );
    var idFTcs = charIDToTypeID( "FTcs" );                                         var idFTcs = charIDToTypeID( "FTcs" );                                         var idFTcs = charIDToTypeID( "FTcs" );
    var idQCSt = charIDToTypeID( "QCSt" );                                         var idQCSt = charIDToTypeID( "QCSt" );                                         var idQCSt = charIDToTypeID( "QCSt" );
    var idQcsa = charIDToTypeID( "Qcsa" );                                         var idQcsa = charIDToTypeID( "Qcsa" );                                         var idQcsa = charIDToTypeID( "Qcsa" );
    desc34.putEnumerated( idFTcs, idQCSt, idQcsa );                                desc37.putEnumerated( idFTcs, idQCSt, idQcsa );                                desc5.putEnumerated( idFTcs, idQCSt, idQcsa );
    var idOfst = charIDToTypeID( "Ofst" );                                         var idOfst = charIDToTypeID( "Ofst" );                                         var idOfst = charIDToTypeID( "Ofst" );
        var desc36 = new ActionDescriptor();                                           var desc39 = new ActionDescriptor();                                           var desc6 = new ActionDescriptor();
        var idHrzn = charIDToTypeID( "Hrzn" );                                         var idHrzn = charIDToTypeID( "Hrzn" );                                         var idHrzn = charIDToTypeID( "Hrzn" );
        var idRlt = charIDToTypeID( "#Rlt" );                                          var idRlt = charIDToTypeID( "#Rlt" );                                          var idPxl = charIDToTypeID( "#Pxl" );
        desc36.putUnitDouble( idHrzn, idRlt, 0.000000 );                               desc39.putUnitDouble( idHrzn, idRlt, 0.000000 );                               desc6.putUnitDouble( idHrzn, idPxl, 0.000000 );
        var idVrtc = charIDToTypeID( "Vrtc" );                                         var idVrtc = charIDToTypeID( "Vrtc" );                                         var idVrtc = charIDToTypeID( "Vrtc" );
        var idRlt = charIDToTypeID( "#Rlt" );                                          var idRlt = charIDToTypeID( "#Rlt" );                                          var idPxl = charIDToTypeID( "#Pxl" );
        desc36.putUnitDouble( idVrtc, idRlt, 0.000000 );                               desc39.putUnitDouble( idVrtc, idRlt, 0.000000 );                               desc6.putUnitDouble( idVrtc, idPxl, 0.000000 );
    var idOfst = charIDToTypeID( "Ofst" );                                         var idOfst = charIDToTypeID( "Ofst" );                                         var idOfst = charIDToTypeID( "Ofst" );
    desc34.putObject( idOfst, idOfst, desc36 );                                    desc37.putObject( idOfst, idOfst, desc39 );                                    desc5.putObject( idOfst, idOfst, desc6 );
executeAction( idPlc, desc34, DialogModes.NO );                                executeAction( idPlc, desc37, DialogModes.NO );                                executeAction( idPlc, desc5, DialogModes.NO );

Similar Messages

  • How can I write relative path in File, ImageIcon objects

    I have downloaded examples from
    http://java.sun.com/docs/books/tutorial/uiswing/components/example-swing/index.html
    but for some reason images are invisible until I write absolute paths?(I use windows) How can I write relative path in File, ImageIcon objects?

    Hello;
    I've found a lot of complaints about this through the Forte forum as well as on Dejanews. I'm just curious as to whether any of you ended up finding a solution to this problem.
    There was one posting about setting up the subdirectory as a URL rather than a String and then using that as the source of the ImageIcon ... but this didn't work for me.
    Any help whatsoever would be appreciated.
    Thanks!

  • How do I convert a compound path into a smart object?

    I'm working on a project and I need to use the free distort tool + ctrl (command for mac users) but it won't work. I found out that I need to convert it to a smart object, from another disscussion, but right clicking the name of it in the layers menu isn't working. I'm using CS6 by the way.

    fyreflair,
    but the discussion talking about the smart object was a photoshop discussion,
    Ah. In some cases, such a discussion may help clarify, wherever it comes from.
    It is nice to know that you had it sorted.

  • Smart Object in CS5

    Hi,
    I want to save my time, and i know that it's possible to copy a vector object from illustrator to photoshop. Photoshop keep the relation on this object as a SMART OBJECT.
    Is it possible to copy a vector from illustrator to Indesign in the same way (Smart Object)
    OR
    What is the efficient way to reduce the time of any changes on this illustrator object. For example, I created a logo in Illustrator and photoshop document have a copy of this logo as a Smart Object. That very easy to change this logo in Photoshop.
    But, in InDesign, i never see this possibility.
    Can you help me about this.
    P.S: The best way for me, is to keep the relation on the original illustrator object and if a change this original illustrator object, the change impact all other document wich include this original illustrator object.
    Thanks !

    No. ALL objects that are PLACED (File >Place...) except for text and spreadsheet files are automatically linked to the original (you are really putting a pointer to the original file in the document, not the actual data), and you can choose to link text and spreadsheets as well. This not only keeps the file size down -- you can have hundreds, or thousands of pages in your document with hundreds or thousands of linked images -- but allows you to modify the original file and update the link inside ID at any time.
    You can embed a linked file if you choose, but there is really no advantage in most workflows, and you can paste from Illustrator if you choose. The advantage to pasting is that you can edit the individual paths locally in your ID file without affecting the original, but the disadvantage is you lose any connection to the original. Having worked both ways I've come to the conclusion that any convenience from pasting is outweighed by the lack of portability and the loss of edit-once-update-many capability for most situations.

  • Open as linked smart object

    Hello,
    iam looking for a solution to open files in a folder
    and copy then into a document.
    Its working good, but i need the files to be linked smart object.
    Anyone knows a solution ?
    Here my Code so far:
    See in line 33. Convert to smart object: ?
    var file = new File('C:/User_MY PATH.PSD'),
    docRef = open(file);
    // Use the path to the application and append the samples folder
    var samplesFolder = Folder('C:/USERS_MY FOLDER');
    //Get all the files in the folder
    var fileList = samplesFolder.getFiles()
      // open each file
      for (var i = 0; i < fileList.length; i++)
      // The fileList is folders and files so open only files
      if (fileList[i]instanceof File)
      open(fileList[i])
      // use the document name for the layer name in the merged document
      var activeDocName = app.activeDocument.name;
      var targetDocName = activeDocName.substring(0, activeDocName.lastIndexOf("."));
      // Copy the Document
      app.activeDocument.selection.selectAll()
      //convertToSmartObject(); THIS ISNT WORKING - CONVERT IT ?
      app.activeDocument.selection.copy()
      // don’t save anything we did
      app.activeDocument.close(SaveOptions.DONOTSAVECHANGES)
      //Select specific layer to paste the copy, this is to make sure the layers are in a specific position
      var doc = app.activeDocument;
      doc.activeLayer = doc.artLayers.getByName("bgr");
      //Paste Document
      app.activeDocument.paste()
      app.activeDocument.activeLayer.name = targetDocName

    Use scriptlistener:
    var idPlc = charIDToTypeID( "Plc " );
        var desc2 = new ActionDescriptor();
        var idnull = charIDToTypeID( "null" );
        desc2.putPath( idnull, new File( "C:\\Photos\\myPhoto.psd" ) );
        var idLnkd = charIDToTypeID( "Lnkd" );
        desc2.putBoolean( idLnkd, true );
        var idFTcs = charIDToTypeID( "FTcs" );
        var idQCSt = charIDToTypeID( "QCSt" );
        var idQcsa = charIDToTypeID( "Qcsa" );
        desc2.putEnumerated( idFTcs, idQCSt, idQcsa );
        var idOfst = charIDToTypeID( "Ofst" );
            var desc3 = new ActionDescriptor();
            var idHrzn = charIDToTypeID( "Hrzn" );
            var idPxl = charIDToTypeID( "#Pxl" );
            desc3.putUnitDouble( idHrzn, idPxl, 0.000000 );
            var idVrtc = charIDToTypeID( "Vrtc" );
            var idPxl = charIDToTypeID( "#Pxl" );
            desc3.putUnitDouble( idVrtc, idPxl, 0.000000 );
        var idOfst = charIDToTypeID( "Ofst" );
        desc2.putObject( idOfst, idOfst, desc3 );
    executeAction( idPlc, desc2, DialogModes.NO );

  • Open as "Smart Object" from ACR to PS questions.

    I have 2 questions associated with opening from ACR as a Smart Object in Photoshop. I'm using CS4.
    1. Is there a way to retrieve the original filename (complete with path) using a script or a setting somewhere to do this? I'm currently using Bridge Talk to ask Bridge what the active folder is then adding that to the document's .name property and taking off the " as Smart Object-1" part. Then I add a .psd extension to it and then I have to save it to retain that name unless there's an answer to #2 below.
    2. Is there a way to change the Document's name as described above from "Filename as Smart Object-1" to "Filename.psd" without actually saving it?
    It seems to me there would be a simple way that I might be overlooking here.
    Thanks
    Mike

    Sorry, I guess I need to explain better.
    I wrote a script to do this, but here is this portion of the workflow:
    1. Open CR2 file in ACR and make adjustments.
    2. Open as Smart Object in PS.
    3. Script Events Manager activates this script on Document Open, checks to see if it was opened as a Smart Object. We'll assume it did.
    4. The script asks me if I want to make another layer. I pick yes. The script copies the SO layer, sets an inverted mask, and opens to edit settings in ACR again.
    5. I adjust the settings for that layer in ACR and click OK.
    The script will keep looping between 4 and 5 as long as I pick YES.
    This gives me more local control of areas. If I want to bring out eyes a bit, I can up contrast, saturation, sharpness, brightness, exposure, or whatever looks best for the eyes in ACR, then unmask the eyes as much as I want on that layer in Photoshop. There is more data to pull from in the RAW file vs trying to do the same thing within Photoshop.
    Opening as a regular image file then converting to a SO doesn't give me the same control. I would have to reopen the file separately, make the adjustments in ACR, open to PS then copy that document and paste as a new layer in the original.
    Duplicating the document might work also, but I can also just save as .psd at that point since I'd have to know the path name by then anyway. I'll give that a try, though, and see if it might work better. The only catch with the save part is it slows me down waiting for it to write the file and if I have 5+ SO layers, it takes awhile. Once I unmask where I want, I flatten to a rasterized layer and continue.
    Thanks

  • Batch Replace Smart Object With Different Image Quality and Sizes

    Hi there,
    I need help. I have this template that is in 1000x1000pixel and 300 dpi. I'm trying to replace the smart object inside with various JPEG that I have. These JPEG comes in large image sizes but lower than 300dpi. The issues is, when I run the script that I have, some of the pictures become really pixelated. Beforehand, I resized them to fit into the empty place in sizes that I find fit the best (8 cm x 6 cm). Some of them work okey, but then some of them just pretty bad. I'm wondering if you can help me fix the script that I have so I didn't have to resized the images before running the script, and for all of them to automatically fit into my template without altering the quality of the image that I put in.
    below is the script that I am using and the screenshot of my template:
    #target photoshop
    if (app.documents.length > 0) {
    var myDocument = app.activeDocument;
    var theName= myDocument.name.match(/(.*)\.[^\.]+$/)[1];
    var thePath = myDocument.path;
    var theLayer = myDocument.activeLayer;
    // psd options;
    psdOpts = new PhotoshopSaveOptions();
    psdOpts.embedColorProfile = true;
    psdOpts.alphaChannels = true;
    psdOpts.layers = true;
    psdOpts.spotColors = true;
    // check if layer is smart object;
    if (theLayer.kind != "LayerKind.SMARTOBJECT") {alert ("selected layer is not a smart object")}
    else {
    // select files;
    if ($.os.search(/windows/i) != -1) {var theFiles = File.openDialog ("please select files", "*.psd;*.jpg;*.jpeg;*.tif", true)}
    else {var theFiles = File.openDialog ("please select files", getFiles, true)};
    if (theFiles) {
    // work through the array;
    for (var m = 0; m < theFiles.length; m++) {
    // replace smart object;
    theLayer = replaceContents (theFiles[m], theLayer);
    var theNewName = theFiles[m].name.match(/(.*)\.[^\.]+$/)[1];
    //Raise color picker for Back cover;
    try {
    app.activeDocument.activeLayer = app.activeDocument.layers[app.activeDocument.layers.length - 1];
    // =======================================================
    var idsetd = charIDToTypeID( "setd" );
    var desc7 = new ActionDescriptor();
    var idnull = charIDToTypeID( "null" );
    var ref2 = new ActionReference();
    var idcontentLayer = stringIDToTypeID( "contentLayer" );
    var idOrdn = charIDToTypeID( "Ordn" );
    var idTrgt = charIDToTypeID( "Trgt" );
    ref2.putEnumerated( idcontentLayer, idOrdn, idTrgt );
    desc7.putReference( idnull, ref2 );
    var idT = charIDToTypeID( "T " );
    var desc8 = new ActionDescriptor();
    var idClr = charIDToTypeID( "Clr " );
    var idsolidColorLayer = stringIDToTypeID( "solidColorLayer" );
    desc7.putObject( idT, idsolidColorLayer, desc8 );
    executeAction( idsetd, desc7, DialogModes.ALL );
    } catch (e) {};
    //save jpg;
    myDocument.saveAs((new File(thePath+"/"+theName+"_"+theNewName+".jpg")),psdOpts,true);
    ////// get psds, tifs and jpgs from files //////
    function getFiles (theFile) {
    if (theFile.name.match(/\.(psd|tif|jpeg|jpg)$/i) != null || theFile.constructor.name == "Folder") {
    return true
    ////// replace contents //////
    function replaceContents (newFile, theSO) {
    app.activeDocument.activeLayer = theSO;
    // =======================================================
    var idplacedLayerReplaceContents = stringIDToTypeID( "placedLayerReplaceContents" );
    var desc3 = new ActionDescriptor();
    var idnull = charIDToTypeID( "null" );
    desc3.putPath( idnull, new File( newFile ) );
    var idPgNm = charIDToTypeID( "PgNm" );
    desc3.putInteger( idPgNm, 1 );
    executeAction( idplacedLayerReplaceContents, desc3, DialogModes.NO );
    return app.activeDocument.activeLayer

    Thank you for your answer.
    I was resizing it before from bigger image size to a smaller one (121 cm to 8 cm) which fit my template size. But the dpi remains in 72 which makes the picture pixelized.
    I am wondering if I can find a script that will keep the size of the first image that I put on the template for other images that I place, regardless the size they are imported to. Basically, how to make them all fit into the template regardless the size.
    Thank you for the info about the scripting forum. I will write there too.
    Sorry, I'm so new to this

  • Creation of file using relative path

    I am working on JSP
    I want to create a file object by passing a relative path as parameter to
    File f = new File("<relative path>");
    i encounter the following error
    "it says server cannot find the file in the path specified."
    I have searched the forums but not able to get any relevant expalination.
    Its an urgent requirement. So please reply. Thanks in advance.

    I notice that servletContext.getRealPath()
    returns path from root directory to the ../webapps/examples folder
    am i correct or it can get real path for any file residing in any subfolder
    like ../webapps/examples/a/df/a.txt ?

  • Is there a way to read/write original .xmp settings of a CR2 loaded as smart object onto a .psd layer?

    Hello all. This has been asked in varying degrees before, but many of the discussions I found relative to my question are from the period 2010 to 2013. Thought I would throw this out there again medio 2014 to see if anything new has developed that I'm somehow missing.
    Here's the situation:
    1. In the filesystem, a CR2 file and a sidecar .xmp file with ACR settings applied via Bridge (CS6).
    2. CR2 file is opened in Photoshop (CS6) as a smart object (.xmp sidecar settings are applied in the process).
    3. CR2 file and .xmp now exist on a .psd layer as a smart object...in some unknown form.
    4. File is saved as .psd
    My question is this:
    Is there ANY way at all via Bridge and/or Photoshop scripting to read/write/access/touch/poke/prod the original ACR "development" settings, originally stored in the .xmp sidecar file, that apparently now exist in some form on the smart object layer in the .psd? Via scripting in Bridge, one can alter the metadata on this saved .psd file, no problem, but this is not the same .xmp data that is being referenced by the image loaded as a smart object onto the .psd layer in that file. Where is this second set of data? Can it be accessed?
    Any info, enlightenment would be much appreciated. Thanks.

    No, not too late.
    InDesign is for layout for press in this case.
    Photoshop is for design, which is using the .jpg's.
    I'm half way there, but stuck at:
    Getting a file location reference when the .jpg is first brought into PS as a layer.
    Getting a script to write the location of the file into the medata for the PSD in some field
    Reading back the metadata file location for the .jpg and bringing it back into the PSD again.
    Any help would really be appreciated.
    I can make the completed script(s) available when its complete, as this has possibilities for other uses, batch process, and more.

  • Photoshop CS6: Pros and Cons of Using Smart Objects

    I haven't had Photoshop CS6 for that long, and have only just got past feeling uncomfortable with using Curves, now I've learnt how to use them properly.
    My concern is - I am currently learning about Smart Objects. The concept, at first, seemed like 'the best thing since sliced bread', being able to non-destructively use filters, Shadows/Highlights command, Unsharp Mask, endlessly scale using Free-Transform etc etc, without harming pixels at all.
    However, the more articles I read about their use in Photoshop, the more I am afraid to start using them in my workflow.
    I understand that when you convert to a Smart Object, this process is non-destructive, i.e. I can perform as many readjustments to a filter, for example, and Photoshop will always work from the embedded container file (which has had no filter adjustment made to it) to adjust the filter to your most recently adjusted settings. If you later decide you don't want to use a filter at all, and rasterize the Smart Object back into a regular layer again, is this process non-destructive as well?
    Then there is this article, which I struggle to understand properly:
    http://bjango.com/articles/smartobjects/
    Please see the part 'Smart Objects Created in Photoshop'. It seems to say I can't scale with a Smart Object without causing interpolation and blurry edges. Please can somebody clarify what the writer of this article is trying to get across, because it is well documented that Smart Objects can be endlessly rescaled non-destructively.
    Please understand I use Photoshop primarily for editing photographs.

    There is much modern focus on "non-destructive" editing, but keep in mind if you don't overwrite or destroy the original file there is no destruction at the highest level.  Put in layman's terms, you could always start over with the raw file.
    That thought segways into my next one:  Non-destructive editing makes sense if you need to use the same information for a variety of somewhat related purposes, or if the work product may need to change (e.g., to suit the whims of a fickle client).
    But at another extreme, if you're editing for a particular purpose - say creating the best possible print from an exposure - sprinting right for the finish line by changing pixel values directly and being done with it can be an extremely effective approach.  This requires that you get things right the first time, and that takes practice.
    Some folks do their Photoshop work by building up layer after layer and using smart objects, smart filters, etc., and this can be effective but no computer has yet been built that can composite all that stuff in real time with a big image.  So there IS a cost to doing it.  What you might gain by being able to re-do things, you might not have needed to gain if your control responses were instantaneous and you could tweak the intermediate result at every step very easily.  Note the number of posts about how slow Photoshop CS6 is/was at editing deep documents, some by people using 2012 computers.
    As with most things, it's horses for courses.  It's good that Photoshop gives us rich tools and choices for how to work.
    Regarding your specific question, bear in mind that what's communicated to the parent document from each of its embedded Smart Objects is a flat, rasterized image.  Think of the embedded smart object kind of like going off and opening another document, making the changes you want, saving the document, then flattening it and pasting the pixels into your parent document.
    In the very first example in the linked article, they show how the smart-object-rasterized image of a vector circle, subsequently scaled by resampling the parent document in which the Smart Object is used, becomes fuzzy as it is scaled up.  Once you understand this you realize that of course you could scale up the smart object itself, e.g., to a size equal to or larger than what's ultimately needed by the parent document, and then it could be crisp in the parent document where it's used.
    Of course, having all your smart objects at a size larger than you need takes up even more resources.
    -Noel

  • Smart objects not updating (CS5)

    I am using CS5 Photoshop and when I try to save edits on an opened smart object (eg. after editing a ‘placed’ photograph) a ‘Save As’ dialog box appears. When I save the edits to the smart object, using the prompted file name, they are not reflected in the master document.
    Can anyone advise what the problem might be? Is the file path between the master document and smart object being lost?
    Thanks for the help.
    Justin

    Yes I am apply layers to a JPEG. So it's solved by flattening the image and saving, but this mean I lose my fiter and masking layers.
    Does that mean the quickest way would be to open the JPEG image before placing, save it as a PSD and then place it?

  • Smart Objects back-end question? How did it get so smart?

    When i am working on a master PSD file with smart objects, i can see how those smart object layers are linked to the actual source files on my local computer hard drives.
    When i go to edit a smart object layer on the master PSD file by double clicking on the SmartObject layer Icon, but on another computer, Photoshop recalls that source file even though it doesn't exist on that new computer.
    It creates a file in the file path:
    System Hard Drive
    var
    tmp
    folders.501
    TemporaryItems
    source_file.psd (but named with the actual source file name).
    How does this work? How does photoshop generate a new source file?
    What happens to that source file? does it always live in that file path?

    <<i can see how those smart object layers are linked to the actual source files on my local computer hard drives.>>
    I'm afraid you're seeing wrong. Smart Objects are linked to nothing external to your PSD file. The original (raster, vector, RAW, PDF) image or object is IN you master PSD file. It's embedded. When you mess with the visible Smart Object, Photoshop consults the internal original but doesn't alter it.
    When you edit a Smart Object, what's opening is a temporary file... merely a place for Photoshop to access the original image or object that is the basis for the Smart Object.

  • Smart Objects in CS5 behave differently than in CS4?

    I've just upgraded from CS4 to CS5, and I've noticed, what is to me, a BIG change in the way Smart Objects work.
    Imagine this simplified hypothetical scenario...
    I create a document in Illustrator, with two layers.
    On one layer would be a 800x600 solid rectangle. On another layer I'd put a small 50x50 circle.
    The import thing here is that the circle would be positioned roughly in the top-left corner in relation to the rectangle.
    I'd select both objects, go over to Photoshop, create a new 800x600 document, and paste what I've just copied into the document as a Smart Object.
    Photoshop would treat both Illustrator layers as one Smart Object of course, and they would get pasted together, and they would look exactly how they did in Illustrator - that being the circle positioned in the top left corner of the rectangle.
    Now I decide I want to hide the solid rectangle in my Smart Object, but I want to keep the circle exactly as it is now in the Photoshop document.
    So I simply double-click to edit the original Illustrator file, and then I hide the layer with the rectangle on it, save the file, close it, and go back to Photoshop.
    In CS4, the file would update to show the changes I had made, so the rectangle would disappear and only the circle would remain - and importantly, the circle would maintain its position. It would stay in the top-left corner of my Photoshop document (the rectangle still exists in the original Illustrator file, but the layer it's on is simply hidden).
    However, when I do this exact same process in CS5, when I update the Smart Object after hiding the rectangle layer in Illustrator, the Smart Object seems to ignore the rectangle that is hidden in the file, and the solitary circle that remains gets totally shifted into the centre of the 800x600 Photoshop file. So it is now no longer in the top-left corner where it was before.
    This is causing me HUGE problems, because I have painstakingly positioned many many various objects in my Illustrator files which then get shifted out of place whenever I make an adjustment!
    Is there any way to get CS5 to treat Smart Objects in the same way that CS4 did before it?

    Regards your comments above, yes I am aware of that discrepancy, but I very carefully make sure not to change the size or position of the largest object. In other words, when ALL objects on ALL layers are selected, I make sure that the OVERALL X/Y co-ordinates AND X/Y dimensions do not change between adjustments of various isolated objects.
    (I actually deliberately keep a "spare" oversized rectangle on a bottom layer to maintain overall size, and it's this layer that I normally switch off in my final Smart Object.)

  • Smart Objects - File size issues

    Hey All,
    The Question: Not sure if this question has been answered elsewhere. But when using a nested smart object (meaning a smart object within a smart object) Photoshop CS5 doesn't display the correct file size (at bottom left) or seem to account for the nested smart object file size.  Is there a "setting" I’m missing to accurately display what the true file size is?
    The Problem: Using multiple nested smart objects that I have reduced the size of my image to be 260x200 for web export. Photoshop CS5 won't let me save a file that appears to be only 3mbs claiming it's over 2 gig's. See image below.
    Really not sure what to do about this, the company I work for makes lots of changes so using smart objects is necessary for my work flow. But also seems to be slowing me down trying to figure out issues like this and is problematic when it comes to saving all the work I have been doing.
    Thanks for the help

    FentonDesigns wrote:
    when using a nested smart object (meaning a smart object within a smart object) Photoshop CS5 doesn't display the correct file size (at bottom left) or seem to account for the nested smart object file size.  Is there a "setting" I’m missing to accurately display what the true file size is?
    One thing you might have missed is that Photoshop is not a file editor its a document editor.   The sizes Photoshop is displaying are related to how much ram it using for the documents data. How efficient ram is being used etc. File sizes vary all over the place sizes depend on the number of pixels in an image format support layers no layers compression?, transparency.   There is no way Photoshop could even guess at any file sizes.
    An other is all smart object layer are not created the same and their sizes my be far different the you may think.  
    Smart object layers have a basic format. There is an embedded object, there is a composite pixel rendering for embedded object that is used for the layer pixels and there is a transform associated for the layer rendered pixels.
    Anything Photoshop supports can be an embedded object.  These objects are copies of the original object.  For example a copy of a RAW file where ACR settings are stored in the file copy metadata. An embedded object might be a copy of a PSD file that has thousands of layers. in any case Photoshop renders pixels for the embedded objects composite view and uses these rendered pixels as the smart object layers pixels.  These pixels can not be changed within the document.
    However the embed object can be opened and worked on and changed. If the change is committed Photoshop will update the embedded object and render the updated object composit view and replace the layers pixels. 
    Smart Object Layer Pixels can only be acted on in the document not changed with paint etc. For example the Transform associated with the smart object layer sizes and positions the layer rendering over the canvas. The layer actual size may be larger then, smaller then the canvas size and have a different aspect ratio then the canvas. Example if you place in an image that is larger then the document canvas size one of Adobe Photoshop's Preferences is set by default have Place resize large images to fit within current the documents canvas size. The transform associated with that placed layer would cause the rendering of the layers pixels to fit with in the canvas. 
    Though an embedded  object may contain thousands of layers the actual object may be much smaller then you think for PSD files are compressed object may be compressed.  Also while the embedded object  may contain vector layers when a smart object layer is transformed the layer is transformed using interpolation like a raster layer for all that is being transformed is the pixels Photoshop rendered for the embedded smart object. The only way to work on the embedded smart object layers it to open the smart object and work on the object itself.j

  • Place smart object into pre-existing Photoshop file

    There's not a way to do this in Bridge, but maybe there is a way to script it?
    I've never used a Bridge Script but would love to how to implement them, if I can get a script to do this...
    I need to Import multiple files into an existing photoshop file (with a predetermined size ) as smart object layers in photoshop.
    The options that Bridge currently offers falls short in 2 area
    Load Files into Photoshop Layers-- does not import smart objects and creates a new photoshop file that ends up being as large as the largest imported file
    Place into Photoshop--only lets you do one at a time
    I need "Place into Photoshop" with multiple files
    Is there a way to do this?
    Thanks!!

    Please try this version, I've tested this in CS4...
    #target bridge
    if( BridgeTalk.appName == "bridge" ) {
      PlaceFiles = new MenuElement("command", "Place Files In Photoshop",
                                   "at the end of Thumbnail");
      PlaceFiles.onSelect = function () {
        placeFilesInPhotoshop();
      function placeFilesInPhotoshop(){
        var sels = app.document.selections;
        for (i = 0; i < sels.length; i++) {
      var t = new Thumbnail(sels[i]);
          sendPicToPhotoshop(sels[i].path);
      function sendPicToPhotoshop(fileName) {
        function _placeFile(fileName) {
          if (!app.documents.length)  return;    
          var id35 = charIDToTypeID( 'Plc ' ) ;
          var desc8 = new ActionDescriptor();
          var id36 = charIDToTypeID( 'null' );
          desc8.putPath( id36, new File(fileName));
          var id37 = charIDToTypeID( 'FTcs' );
          var id38 = charIDToTypeID( 'QCSt' );
          var id39 = charIDToTypeID( 'Qcsa' );
          desc8.putEnumerated( id37, id38, id39 );
          var id40 = charIDToTypeID( 'Ofst' );
          var desc9 = new ActionDescriptor();
          var id41 = charIDToTypeID( 'Hrzn' );
          var id42 = charIDToTypeID( '#Pxl' );
          desc9.putUnitDouble( id41, id42, 0.000000 );
          var id43 = charIDToTypeID( 'Vrtc' );
          var id44 = charIDToTypeID( '#Pxl' );
          desc9.putUnitDouble( id43, id44, 0.000000 );
          var id45 = charIDToTypeID( 'Ofst' );
          desc8.putObject( id40, id45, desc9 );
          executeAction( id35, desc8, DialogModes.NO );
        var bt = new BridgeTalk;
        bt.target = "photoshop";
        var myScript = ("var _ftn = " + _placeFile.toSource() + "; _ftn(" +
                        fileName.toSource() +");");
        bt.body = myScript;
        bt.send();

Maybe you are looking for

  • HELP NEEDED IN SCREEN EXIT

    hi, i'm trying to add custom fields in XD01.. we have 6 tabs in the second screen in XD01.. it should come as 7th tab.. for this in the PREPARE MODIFICATION-FREE ENHANCEMENT OF CUSTOMER MASTER RECORD in SPRO, i have created one screen group 'Z1' and

  • Will external hard disk with firewire help me to back up my laptop using time machine?

    Hi, I have macbook pro from 2011 with 750GB hard disk and I try to back up my hard disk using time machine for the first time. I used time machine before in the previous OSX versions but I had to format the external disk. I have an external Western D

  • Create message with KSOAP...problem?

    Hello to all, me to servere one disperatamente hand�. I have created a message SOAP with KSOAP2�. How I make to obtain a string that it represents message SOAP?

  • Crystal Reports for Eclipse ReportViewer

    Hi there. I'm just getting started with Crystal Reports for Eclipse plug-in.... I've downloaded the plug in for Eclipse.... now I'm trying to run a swing application that displays a report I found online.... but I can't find the ReportViewer.jar file

  • EA2: Another crash... again

    Hi, Same symptoms as previous reported crashes: switched to IE and came back to find sqldev hanging. There's no deadlock report in my profile, so I post the thread dump: Full thread dump Java HotSpot(TM) Client VM (10.0-b19 mixed mode, sharing): "Tim