Add option to new layer setting to narrative photo.

What the problem is, when i want add new layer image. The view selecting gallery shown local image. Can i setting to narrative photo browser when i want add layer? Its just difficult to add layer coz "the local" arrange by old date images first. Thanks.

There is a special forum for feature requests where you might want to post your request: http://feedback.photoshop.com/photoshop_family

Similar Messages

  • Sequentially number layer sets

    Great, apparently if I add Tags it wipes out my question and just posts the tags as the message body. Brilliant. Re-typing...
    I have a large and growing PSD with many layer sets (folders of layers.) I need to sequentially number the layer sets, but preserve their existing names. For example, layer set named "foo" should be renamed "001 foo",  the next layer set "bar" should be renamed "002 bar" and so on.
    Doing this manually would take a long time, but more importantly, as I add new layer sets and reorder them I don't want to have to do it all over again.
    I am not a programmer so I don't know where to begin writing this script. Google helped me find a few scripts that do something similar, but not exactly what I want. Most of the scripts I found will rename layers, but I need to rename the layer sets (folders.)
    If it helps, I'll explain what I'm ultimately trying to do. I want to export each of my layer sets to an image, and have those images numbered sequentially based on the order of the layer sets. I already found a script that will export all of my layer sets to JPG images, so if I can find the script described above, I should be able to do this in two steps (1. rename layer sets, 2. export images.) If there is an easier or better approach, let me know.
    I have Photoshop CS5 on Mac OSX Lion.
    Any help is appreciated! Thanks!

    Could you try this?
    // add sequential three places number to beginning of layersets’ names or change existing three places number;
    // 2012, use at your own risk;
    #target photoshop
    if (app.documents.length > 0) {
    var myDocument = app.activeDocument;
    var theSets = collectLayerSets(myDocument);
    for (var m = 0; m < theSets.length; m++) {
              var thisSet = theSets[m];
              var myRegExp = /^\d{3}/;
              var theNumber = theSets.length - m;
              if (thisSet.name.match(myRegExp) == null) {thisSet.name = bufferNumberWithZeros(theNumber, 3) + " " + thisSet.name}
              else {thisSet.name = thisSet.name.replace(myRegExp, bufferNumberWithZeros(theNumber, 3))}
    ////// function collect all layersets //////
    function collectLayerSets (theParent) {
              if (!allLayerSets) {var allLayerSets = new Array}
              else {};
              for (var m = theParent.layers.length - 1; m >= 0;m--) {
                        var theLayer = theParent.layers[m];
    // apply the function to layersets;
                        if (theLayer.typename == "LayerSet") {
                                  allLayerSets = allLayerSets.concat(collectLayerSets(theLayer))
                                  allLayerSets = allLayerSets.concat(theLayer);
              return allLayerSets
    ////// buffer number with zeros //////
    function bufferNumberWithZeros (number, places) {
              var theNumberString = String(number);
              for (var o = 0; o < (places - String(number).length); o++) {
                        theNumberString = String("0" + theNumberString)
              return theNumberString

  • Add a New Layer As a Last Layer

    Hi Friends,
    How to  Add a New Layer As a Last Layer in indesign scripting.
    If the Document has 5 layers in the sense,the newly added Layer should be the 6th Layer.
    Please Give ideas.

    JesRoberts wrote:
    .. If the Document has 5 layers in the sense,the newly added Layer should be the 6th Layer.
    Please Give ideas.
    Adding a layer to a set of five will automatically make this the 6th. I cannot see any other way.

  • How to add a new character set encoding?

    Hello,
    can anybody please explain to me, how to add a new character set encoding to Mac OS Tiger?
    I have two Mac laptops, a new one with Snow Leopard and an older one with Tiger, and on the old one i cannot use or enable anywhere the "Russian (DOS)" character set encoding, which i need to be able to use some old text files.
    On the Snow Leopard, this encoding is present in the list of available encodings of TextWrangler, but not in TIger.
    If i have understood correctly, this is not a problem of TextWrangler, and the same encodings are available systemwide.
    So, the question is: how to add new encodings to Tiger (or to Mac OS in general)?
    Thanks.

    I think possibly that's in the Get Info window of Finder?
    I don't think either that or the input menu have any effect on available encoding choices. Adding languages to system prefs/international/languages can do that, but once you have added Russian there, I don't know of any way to add an additional Russian encoding (there are quite a number of them).

  • Using Adobe PhotoShop CS4, I cannot add text to a new layer. It was always a snap with previous versions of OS 10. Has anyone else noticed issues with CS4 and Lion? Many thanks in advance. Pete Hendricks

    Using Adobe PhotoShop CS4, I cannot add text to a new layer. It was always a snap with previous versions of OS 10. Has anyone else noticed issues with CS4 and Lion? Many thanks in advance. Pete Hendricks

    Happy to report that iTunes Match has returned to working like normal on iTunes 10.7 on my computer today. If any iTunes engineers read this thread, I really appreciate the fix.
    Has it returned to normal for you?

  • Add a new Property Set

    Hi,
    My question is:
    I want add a new property set , so I create a new .usr file in workshop,
    then build a ear file and deploy .
    but i can't found this property set in adminportal, Why?
    If I do not use the ear file, under the workshop to deploy, all is ok.

    Hi,
    I used this code to autoformat my columns! Hope this was what you were looking for!
    Optimize width of columns --------------------------------------*
          DATA: column      TYPE ole2_object.
          CALL METHOD OF h_excel 'Columns' = column NO FLUSH.
          FREE OBJECT h_excel NO FLUSH.
          CALL METHOD OF column 'Autofit' NO FLUSH.
          FREE OBJECT column NO FLUSH.

  • Is it possible to add new character set encodings?

    Hello,
    is it possible to add new character set encodings in Mac OS?
    Practically, i need to add "Russian (DOS)" encoding to Tiger, but is it at all possible even in newer versions of Mac OS?
    Where to find the missing encodings and how to install them?
    Google search did not return much.
    Thanks.

    Well, it was a general question about possibility of adding new encodings in Mac OS, but i posted a more specific question about Tiger here:
    http://discussions.apple.com/thread.jspa?threadID=2692557&tstart=0
    On Tiger i do not have Russian (DOS) in TextEdit, only Cyrillic (DOS).
    The same about TextWrangler on Tiger.
    Strangely, i have Russian (DOS) in TeXShop on Tiger.

  • Motion tween adds new layer

    I'm rather belatedly getting to grips with the new tweening system introduced in CS4.  To be quite honest it's been a nightmare, but I'm starting to see its good points now.
    One thing that still drives me crazy is when you create a new tween and Flash creates a new layer for you and puts the tween into it.  Why?  And how do I stop it?  Over the course of a 10 min animation with a lot of tweens I could end up with hundreds of layers!
    Thx.

    It only creates a new layer when you don't have everything selected. This is because you cannot have the tweened and non-tweened element on the same frame (you can have non-tweened elements on the same layer, just not the shared frame - as with any tween).
    If you don't want it to create a new layer, make sure that everything is selected on that frame and it will create it on the same layer.
    Jen.
    PS: This guide may help: http://www.adobe.com/devnet/flash/articles/motion_migration_guide.html

  • Control of layer sets in EDA objects

    We are using AutoVue in a process to review design library objects, as they are being created. We have a large number (10,000+) of these items to review and would like to make the user experience as simple as possible. One of the more cumbersome pieces of the review process is changing the visibility of layers. All of these objects have a common set of layers (same names and order). We are trying to determine if there is a way to simplify the layer visibility process. Here are a couple of thoughts we have and are looking for suggestions/alternatives.
    Option 1
    We know that a number of layer sets could be created where each set controls the visibility of a select set of layers. The layers sets could then be stored in a markup file. We know that the markup.map file controls the relationship between the object being viewed and the mark file. We could alter/programmatically update this file to have each of the objects point to the same markup file. This seems to be kind of a kludge and has a number of holes that make it not very desirable.
    Option 2
    We know that the UI can be altered depending on the user. We are thinking that if we could create menu items or icons that set the visibility for the various views the users need, it would make the process much more elegant and less time consuming. Several questions come to mind in this option. Can the UI be modified to add additional menu selection or icons? Can a menu item or icon be used to set the layer visibility? Can the method by which AutoVue is launched be used to control the ultimate appearance and options available to the user? If we were to pursue this option, is there a recipe already in place that could guide us through the process?
    Any and all responses are greatly appreciated.

    Hi Charlie,
    Thanks for clarifying that each of your EDA files have the same set of layers with the same names in the same order - this is a crucial factor if you want to try to approach this in a programmatic or batch manner.
    As we discussed earlier today in a separate thread, Option #1 (creating a single markup file with the saved views and linking that markup to multiple base files) might lead to problems. As you know, when AutoVue is not integrated to a DMS/PLM, the markups are managed on the AutoVue server in the markups.map file... and while that file is ASCII and could be modified (not recommended), remember that the mapping depends on exactly where the base file was opened from and what protocol was used to open that file. As a result, if the same file might be opened in 2 different ways (e.g. one time locally from the user's machine, and one time from a web URL), the markup won't automatically be linked to both. Option #1 might be too unpredictable.
    Therefore I'd recommend Option #2. I'll ask the experts to chime in if they disagree, but I think that what you'd like to achieve is possible through the AutoVue API and can be broken down into 3 parts:
    1. Writing the core code to enable/disable specific layers
    2. Packaging this code as a custom "VueAction" so that it can be called as a custom menu or toolbar item
    3. Customizing the GUI to expose this menu or toolbar item
    Part 1 (code to enable/disable specific layers) should be relatively easy. The AutoVue API includes a class called "com.cimmetry.core.PAN_LAYER" which represents a layer in a file (including EDA files). With the API you can:
    - Get the list of layers from the current file (VueBean.getLayersState)
    - Enable/disable the layers as required (PAN_LAYER.setState(PAN_LAYER.STATE_ON) or PAN_LAYER.setState(PAN_LAYER.STATE_OFF))
    - Re-apply the updated layer set (VueBean.setLayersState)
    Part 2 (building a custom VueAction) is a bit more complex, but is explained quite well in the new API Programmer's Guide (http://download.oracle.com/docs/cd/E22156_02/otn/pdf/E22092_01.pdf) that shipped with AutoVue 20.1.0. I'd recommend to read pages 20-22 and 30-35. You would want to take the code from Part 1 and package it into your custom VueAction's "perform" method.
    Part 3 (customizing the GUI) should also be relatively easy, and is discussed on pages 62-68 of the Installation and Configuration Guide (http://download.oracle.com/docs/cd/E22156_02/otn/pdf/E22093_01.pdf).
    But rather than just saying "read the docs", we also now provide a pre-written example of a custom VueAction with AutoVue 20.1.0 Client/Server Deployment (I think it's an optional component during install). If you've included it during the install, you'll have the folder \examples\VueActionSample in your server installation. You should be able to use that as a reference for adding your own custom VueAction to the applet.
    There's one other part I hadn't included. In our separate thread earlier today, I think you mentioned you wanted to only provide this GUI customization for certain users. If you want to control the GUI based on user/group/role/etc, this is possible but will be up to you to determine the user/group/role/etc and script the JVue applet accordingly (i.e. either dynamically script the applet to set the GUIFILE parameter, or use the JVue.setGUI method).
    Hope this helps as a start.
    Thanks,
    Graham
    EDIT: If you prefer to automate the layer config as soon as the file is loaded - rather than have it as a custom menu or toolbar item - you can do that as well and in fact it's much easier. In that case you still go through Part 1 and write the code to set the desired layers, and you implement it as a 2nd applet as described in Oracle KM Note 754612.1 (https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=HOWTO&id=754612.1).
    Edited by: user638792 on Apr 5, 2011 8:23 PM

  • Independent layer sets for each artboard

    Currently the layer structure is the same over all artboards in a document. I would like to  start a new artboard with layers independent of the existing ones. A layer set will depend on the kind of artwork you create on a particular artboard, and is meaningless when you start a new artboard. So I would suggest to start each artboard with its single default layer, and add new layers only for the artboard I'm currently working on.
    Extra credit for the option to copy a layer structure from one artboard to another, though I'm not sure I'd use that much.

    Great idea/suggestion. It seems so logical and straightforward I am bewildered that this feature is not yet included in Illustrator.

  • Installing new layer styles in PSE 7

    What is the correct way to install new layer styles into pse 7? ( I use Vista)
    Do I move my extracted style file into the layer styles folder by following this pathway: program data>adobe>photoshop elements>7.0>photo creations>layer styles.
    Do I need to create a metafile too?
    Thank you for helping me, I have about a dozen styles I need to add, but I am unsure how to get it done properly.

    Hello,
    You need to create a metadata.xml file too to view it in a specific category of your choioce.
    You need to paste the two things :
    1) .asl file.
    2) metadata.xml,
    to the following location:
    C:\ProgramData\Adobe\Photoshop Elements\8.0\Photo Creations\layer styles.
    Here you need to add the two files and relaunch PSE. This will show you the presets in the layer styles category with.
    While creating the metadat.xml file you need to take care of two things:
    1) Add a new category name so that you can easily find them.
    2) You need to verify that Type value is set "Style  as mentioned :  <type value="style" />
    Hope this helps you.

  • Problem with layer sets opening

    Hi,
    I have a problem open layer sets. In my script I get layers index and then iterate throught this layers.
    Here is the script:
    function getAllLayersByIndex(){
           function getNumberLayers(){
           var ref = new ActionReference();
           ref.putProperty( charIDToTypeID("Prpr") , charIDToTypeID("NmbL") )
           ref.putEnumerated( charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
           return executeActionGet(ref).getInteger(charIDToTypeID("NmbL"));
           function hasBackground() {
               var ref = new ActionReference();
               ref.putProperty( charIDToTypeID("Prpr"), charIDToTypeID( "Bckg" ));
               ref.putEnumerated(charIDToTypeID( "Lyr " ),charIDToTypeID( "Ordn" ),charIDToTypeID( "Back" ))//bottom Layer/background
               var desc =  executeActionGet(ref);
               var res = desc.getBoolean(charIDToTypeID( "Bckg" ));
               return res  
           function getLayerType(idx,prop) {      
               var ref = new ActionReference();
               ref.putIndex(charIDToTypeID( "Lyr " ), idx);
               var desc =  executeActionGet(ref);
               var type = desc.getEnumerationValue(prop);
               var res = typeIDToStringID(type);
               return res  
           function getLayerVisibilityByIndex( idx ) {
               var ref = new ActionReference();
               ref.putProperty( charIDToTypeID("Prpr") , charIDToTypeID( "Vsbl" ));
               ref.putIndex( charIDToTypeID( "Lyr " ), idx );
               return executeActionGet(ref).getBoolean(charIDToTypeID( "Vsbl" ));;
           var cnt = getNumberLayers()+1;
           var res = new Array();
           if(hasBackground()){
        var i = 0;
              }else{
        var i = 1;
           var prop =  stringIDToTypeID("layerSection");
           for(i;i<cnt;i++){
              var temp = getLayerType(i,prop);
              if(temp != "layerSectionEnds") res.push(i);
           return res;
           function getLayerVisibilityByIndex( idx ) {
               var ref = new ActionReference();
               ref.putProperty( charIDToTypeID("Prpr") , charIDToTypeID( "Vsbl" ));
               ref.putIndex( charIDToTypeID( "Lyr " ), idx );
               return executeActionGet(ref).getBoolean(charIDToTypeID( "Vsbl" ));
    function makeActiveByIndex( idx, visible ){
        var desc = new ActionDescriptor();
          var ref = new ActionReference();
          ref.putIndex(charIDToTypeID( "Lyr " ), idx)
          desc.putReference( charIDToTypeID( "null" ), ref );     
          desc.putBoolean( charIDToTypeID( "MkVs" ), visible );
       executeAction( charIDToTypeID( "slct" ), desc, DialogModes.NO );
    var groups = getAllLayersByIndex();
        for(var i = groups.length-1; i >= 0 ; i--) {
          makeActiveByIndex( groups[i], true );
          ....working with layers....
    I think, my problem is in function makeActiveByIndex, because it doesn't make active a folder and doesn't open it.
    You can see it on this picture. Active layer set is "Skupina 1" and it is in layer set "hlavicka". But "hlavicka" is not open. WHY??
    Can you help me fix this problem??
    Thank you Domaneni

    Hi, for the past days I've worked on a script to toogle opening and closing layeSets, I've taken the code that TeddyBear posted here: http://ps-scripts.com/bb/viewtopic.php?p=14773 and adjusted it a little bit, and that's what I came up with, I hope it will help you:
    <javascriptresource>
      <name>BCM> ToogleOpen_CloseGroup...</name>
      <category>BCM</category>
    </javascriptresource>
    //For code readability
    // http://ps-scripts.com/bb/viewtopic.php?f=9&t=3235
    function getActiveLayerIndex() {
        var ref = new ActionReference();
        ref.putProperty( charIDToTypeID("Prpr") , charIDToTypeID( "ItmI" ));
        ref.putEnumerated( charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
        return executeActionGet(ref).getInteger(charIDToTypeID( "ItmI" ));
    function cTID(s){return charIDToTypeID(s)}
    function sTID(s){return stringIDToTypeID(s)}
    // =============================
    // The main function
    function closeGroup(layerSet) {
       var m_Name = layerSet.name;
       var m_Opacity = layerSet.opacity;
       var m_BlendMode = layerSet.blendMode;
       var m_LinkedLayers = layerSet.linkedLayers;
      var currINDEX = getActiveLayerIndex();
       var m_bHasMask = hasLayerMask();
       if(m_bHasMask) loadSelectionOfMask();
       if(layerSet.layers.length <= 1) {
          addTempLayerSetIn(currSetIDX-1);
          makeActiveByIndex(currSetIDX+2, false);
          ungroup();
          groupSelected(m_Name);
          deleteTempLayerSetbyIdx(currSetIDX+1);
       } else {
           makeActiveByIndex(currSetIDX, false);
          ungroup();
          groupSelected(m_Name);
       var m_Closed = activeDocument.activeLayer;
       m_Closed.opacity = m_Opacity;
       m_Closed.blendMode = m_BlendMode;
       for(x in m_LinkedLayers) {
          if(m_LinkedLayers[x].typename == "LayerSet")
             activeDocument.activeLayer.link(m_LinkedLayers[x]);
       if(m_bHasMask) maskFromSelection();
       return m_Closed;
    // =============================
    // Below are all necessary subroutines for the main function to work
    function ungroup() {
       var m_Dsc01 = new ActionDescriptor();
       var m_Ref01 = new ActionReference();
       m_Ref01.putEnumerated( cTID( "Lyr " ), cTID( "Ordn" ), cTID( "Trgt" ) );
       m_Dsc01.putReference( cTID( "null" ), m_Ref01 );
       try {
          executeAction( sTID( "ungroupLayersEvent" ), m_Dsc01, DialogModes.NO );
       } catch(e) {}
    function addLayer() {
       var m_ActiveLayer          =    activeDocument.activeLayer;
       var m_NewLayer             =    activeDocument.layerSets.add();
       m_NewLayer.move(m_ActiveLayer, ElementPlacement.PLACEBEFORE);
       return m_NewLayer;
    function hasLayerMask() {
       var m_Ref01 = new ActionReference();
       m_Ref01.putEnumerated( sTID( "layer" ), cTID( "Ordn" ), cTID( "Trgt" ));
       var m_Dsc01= executeActionGet( m_Ref01 );
       return m_Dsc01.hasKey(cTID('Usrs'));
    function activateLayerMask() {
       var m_Dsc01 = new ActionDescriptor();
       var m_Ref01 = new ActionReference();
       m_Ref01.putEnumerated( cTID( "Chnl" ), cTID( "Chnl" ), cTID( "Msk " ) );
       m_Dsc01.putReference( cTID( "null" ), m_Ref01 );
       try {
          executeAction( cTID( "slct" ), m_Dsc01, DialogModes.NO );
       } catch(e) {
          var m_TmpAlpha = new TemporaryAlpha();
          maskFromSelection();
          activateLayerMask();
          m_TmpAlpha.consume();
    function deleteMask(makeSelection) {
       if(makeSelection) {
          loadSelectionOfMask();
       var m_Dsc01 = new ActionDescriptor();
       var m_Ref01 = new ActionReference();
       m_Ref01.putEnumerated( cTID( "Chnl" ), cTID( "Ordn" ), cTID( "Trgt" ) );
       m_Dsc01.putReference( cTID( "null" ), m_Ref01 );
       try {
          executeAction( cTID( "Dlt " ), m_Dsc01, DialogModes.NO );
       } catch(e) {}
    function selectLayerMask() {
       var m_Dsc01 = new ActionDescriptor();
       var m_Ref01 = new ActionReference();
       m_Ref01.putEnumerated(cTID("Chnl"), cTID("Chnl"), cTID("Msk "));
       m_Dsc01.putReference(cTID("null"), m_Ref01);
       m_Dsc01.putBoolean(cTID("MkVs"), false );
       try {
          executeAction(cTID("slct"), m_Dsc01, DialogModes.NO );
       } catch(e) {}
    function loadSelectionOfMask() {
       selectLayerMask();
       var m_Dsc01 = new ActionDescriptor();
       var m_Ref01 = new ActionReference();
       m_Ref01.putProperty( cTID( "Chnl" ), cTID( "fsel" ) );
       m_Dsc01.putReference( cTID( "null" ), m_Ref01 );
       var m_Ref02 = new ActionReference();
       m_Ref02.putEnumerated( cTID( "Chnl" ), cTID( "Ordn" ), cTID( "Trgt" ) );
       m_Dsc01.putReference( cTID( "T   " ), m_Ref02 );
       try {
          executeAction( cTID( "setd" ), m_Dsc01, DialogModes.NO );
       } catch(e) {}
    function maskFromSelection() {
       if(!hasLayerMask()) {
          var m_Dsc01 = new ActionDescriptor();
          m_Dsc01.putClass( cTID( "Nw  " ), cTID( "Chnl" ) );
          var m_Ref01 = new ActionReference();
          m_Ref01.putEnumerated( cTID( "Chnl" ), cTID( "Chnl" ), cTID( "Msk " ) );
          m_Dsc01.putReference( cTID( "At  " ), m_Ref01 );
          m_Dsc01.putEnumerated( cTID( "Usng" ), cTID( "UsrM" ), cTID( "RvlS" ) );
          try {
             executeAction( cTID( "Mk  " ), m_Dsc01, DialogModes.NO );
          } catch(e) {
             activeDocument.selection.selectAll();
             maskFromSelection();
       } else {
          if(confirm("Delete existing mask?", true, "Warning")) {
             activateLayerMask();
             deleteMask();
    function groupSelected(name) {
       var m_Dsc01 = new ActionDescriptor();
       var m_Ref01 = new ActionReference();
       m_Ref01.putClass( sTID( "layerSection" ) );
       m_Dsc01.putReference(  cTID( "null" ), m_Ref01 );
       var m_Ref02 = new ActionReference();
       m_Ref02.putEnumerated( cTID( "Lyr " ), cTID( "Ordn" ), cTID( "Trgt" ) );
       m_Dsc01.putReference( cTID( "From" ), m_Ref02 );
       var m_Dsc02 = new ActionDescriptor();
       m_Dsc02.putString( cTID( "Nm  " ), name);
       m_Dsc01.putObject( cTID( "Usng" ), sTID( "layerSection" ), m_Dsc02 );
       executeAction( cTID( "Mk  " ), m_Dsc01, DialogModes.NO );
       return activeDocument.activeLayer;
    function addToSelection(layerName) {
       var m_Dsc01 = new ActionDescriptor();
       var m_Ref01 = new ActionReference();
       m_Ref01.putName( cTID( "Lyr " ), layerName );
       m_Dsc01.putReference( cTID( "null" ), m_Ref01 );
       m_Dsc01.putEnumerated( sTID( "selectionModifier" ), sTID( "selectionModifierType" ), sTID( "addToSelection" ) );
       m_Dsc01.putBoolean( cTID( "MkVs" ), false );
       try {
          executeAction( cTID( "slct" ), m_Dsc01, DialogModes.NO );
       } catch(e) {}
    function TemporaryAlpha() {
       activeDocument.selection.store((this.alpha = activeDocument.channels.add()));
       activeDocument.selection.deselect();
       this.consume = function() {
          activeDocument.selection.load(this.alpha);
          this.alpha.remove();
    function makeActiveByIndex( idx, visible ){
         if( idx.constructor != Array ) idx = [ idx ];
         for( var i = 0; i < idx.length; i++ ){
              var desc = new ActionDescriptor();
              var ref = new ActionReference();
              ref.putIndex(charIDToTypeID( 'Lyr ' ), idx[i])
              desc.putReference( charIDToTypeID( 'null' ), ref );
              if( i > 0 ) {
                   var idselectionModifier = stringIDToTypeID( 'selectionModifier' );
                   var idselectionModifierType = stringIDToTypeID( 'selectionModifierType' );
                   var idaddToSelection = stringIDToTypeID( 'addToSelection' );
                   desc.putEnumerated( idselectionModifier, idselectionModifierType, idaddToSelection );
              desc.putBoolean( charIDToTypeID( 'MkVs' ), visible );
              executeAction( charIDToTypeID( 'slct' ), desc, DialogModes.NO );
    function deleteActiveLayer(){
       // =======================================================
       var idDlt = charIDToTypeID( "Dlt " );
           var desc752 = new ActionDescriptor();
           var idnull = charIDToTypeID( "null" );
               var ref529 = new ActionReference();
               var idLyr = charIDToTypeID( "Lyr " );
               var idOrdn = charIDToTypeID( "Ordn" );
               var idTrgt = charIDToTypeID( "Trgt" );
               ref529.putEnumerated( idLyr, idOrdn, idTrgt );
           desc752.putReference( idnull, ref529 );
       executeAction( idDlt, desc752, DialogModes.NO );
    function isLayerSet( idx ) {
         var propName = stringIDToTypeID( 'layerSection' );
         var ref = new ActionReference();
         ref.putProperty( charIDToTypeID( "Prpr" ) , propName);
         ref.putIndex( charIDToTypeID ( "Lyr " ), idx );
         var desc =  executeActionGet( ref );
         var type = desc.getEnumerationValue( propName );
         var res = typeIDToStringID( type );
         // alert(res);
         return res == 'layerSectionStart' ? true:false;
    function openGroup1(theGroup) {
       currSetIDX= getActiveLayerIndex();
       if(isLayerSet( currSetIDX ))
        getNamesPlusIDsOfLayerSet();
      makeActiveByIndex(currSetIDX, false);
    function getNamesPlusIDsOfLayerSet(){
       var ref = new ActionReference();
       ref.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );
       var count = executeActionGet(ref).getInteger(charIDToTypeID('Cnt '));
      var parId = executeActionGet(ref).getInteger(stringIDToTypeID( 'layerID' ));
       var Names=[];
       var x = 0;
       var y = 0;
       var r = 0;
       currINDEX = getActiveLayerIndex();
        var i = currINDEX;
       for(i; i > 0 ; i--){
            ref = new ActionReference();
            ref.putIndex( charIDToTypeID( 'Lyr ' ), i );
            var desc = executeActionGet(ref);
            var layerName = desc.getString(charIDToTypeID( 'Nm  ' ));
            var Id = desc.getInteger(stringIDToTypeID( 'layerID' ));
            var ls = desc.getEnumerationValue(stringIDToTypeID("layerSection"));
            ls = typeIDToStringID(ls);
            // alert(layerName+": _ :"+ls);
            if(ls == "layerSectionStart"){x++};
            if(layerName.match(/^<\/Layer group/) )
              y ++;
              r = x - y;
              if(r == 0 && ls == "layerSectionEnd"){break};
              continue
            if(ls == "layerSectionContent"){makeActiveByIndex(i,false);break};
            var layerType = typeIDToStringID(desc.getEnumerationValue( stringIDToTypeID( 'layerSection' )));
            var isLayerSet =( layerType == 'layerSectionContent') ? false:true;
    Names.push([[Id],[layerName],[isLayerSet]]);
    return Names;
    function getLayersNb()//function to find out if the number of layers in the document
        var ref = new ActionReference();
        ref.putProperty( charIDToTypeID( 'Prpr' ), stringIDToTypeID('numberOfLayers') );
        ref.putEnumerated( charIDToTypeID( "Dcmn" ), charIDToTypeID( "Ordn" ), charIDToTypeID( "Trgt" ) );
        var desc = executeActionGet(ref);
        var numberOfLayers = desc.getInteger(stringIDToTypeID('numberOfLayers'));
        return numberOfLayers;
    function toogleOpenCloseSet(){
      myALayerIDX = getActiveLayerIndex();
      myGroupP = app.activeDocument.activeLayer;
      if(!isLayerSet(myALayerIDX)){
          myGroupP = app.activeDocument.activeLayer.parent;
          if(myGroupP.typename != "Document"){
            if(isSetOpened1(myGroupP)){closeGroup(myGroupP)}else{openGroup1(myGroupP)};
      }else{
        if(isSetOpened1(myGroupP)){closeGroup(myGroupP)}else{openGroup1(myGroupP)};
    function getFristLayerSetChildVisible(){
      xx = false;
       var ref = new ActionReference();
       ref.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );
       var count = executeActionGet(ref).getInteger(charIDToTypeID('Cnt '));
      var parId = executeActionGet(ref).getInteger(stringIDToTypeID( 'layerID' ));
       var Names=[];
        var x = 0;
        var y = 0;
        var r = 0;
       currINDEX = getActiveLayerIndex();
        var i = currINDEX;
       for(i; i > 0 ; i--){
            ref = new ActionReference();
            ref.putIndex( charIDToTypeID( 'Lyr ' ), i );
            var desc = executeActionGet(ref);
            var layerName = desc.getString(charIDToTypeID( 'Nm  ' ));
            var Id = desc.getInteger(stringIDToTypeID( 'layerID' ));
            var ls = desc.getEnumerationValue(stringIDToTypeID("layerSection"));
            ls = typeIDToStringID(ls);
            var vis = desc.getInteger(stringIDToTypeID( 'visible' ));
            // alert(layerName+": _ :"+vis);
    /*        if(desc.hasKey(stringIDToTypeID("visible")))
              alert(desc.getType(stringIDToTypeID("visible")));
            if(ls == "layerSectionStart"){x++};
            if(vis == 1 && Id!=parId && r!=0){
              var theOBj = {id:Id, lname:layerName, idx:i};
              xx =true;
              Names.push(theOBj);
              break;
            if(layerName.match(/^<\/Layer group/) )
              y ++;
              r = x - y;
              if(r == 0 && ls == "layerSectionEnd"){break};
              continue
        return Names;
    function getLastChildIdx(){
      xx = false;
       var ref = new ActionReference();
       ref.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );
       var count = executeActionGet(ref).getInteger(charIDToTypeID('Cnt '));
      var parId = executeActionGet(ref).getInteger(stringIDToTypeID( 'layerID' ));
       currINDEX = getActiveLayerIndex();
        var i = currINDEX;
        var x = 0;
        var y = 0;
        var r = 0;
        var lastChIdx = 0;
       for(i; i > 0 ; i--){
            ref = new ActionReference();
            ref.putIndex( charIDToTypeID( 'Lyr ' ), i );
            var desc = executeActionGet(ref);
            var layerName = desc.getString(charIDToTypeID( 'Nm  ' ));
            var Id = desc.getInteger(stringIDToTypeID( 'layerID' ));
            var ls = desc.getEnumerationValue(stringIDToTypeID("layerSection"));
            ls = typeIDToStringID(ls);
            var vis = desc.getInteger(stringIDToTypeID( 'visible' ));
            if(ls == "layerSectionStart"){x++};
            if(layerName.match(/^<\/Layer group/) )
              y ++;
              r = x - y;
              if(r == 0 && ls == "layerSectionEnd")
                lastChIdx = i;
                break;
            // alert(x+" _ "+y+" _ "+r+" _ "+layerName);
        return lastChIdx;
    function getNbOfChilds(){
      xx = false;
       var ref = new ActionReference();
       ref.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );
       var count = executeActionGet(ref).getInteger(charIDToTypeID('Cnt '));
      var parId = executeActionGet(ref).getInteger(stringIDToTypeID( 'layerID' ));
       currINDEX = getActiveLayerIndex();
        var i = currINDEX;
        var nb = 0;
        var x = 0;
        var y = 0;
        var r = 0;
       for(i; i > 0 ; i--){
            ref = new ActionReference();
            ref.putIndex( charIDToTypeID( 'Lyr ' ), i );
            var desc = executeActionGet(ref);
            var layerName = desc.getString(charIDToTypeID( 'Nm  ' ));
            var Id = desc.getInteger(stringIDToTypeID( 'layerID' ));
            var ls = desc.getEnumerationValue(stringIDToTypeID("layerSection"));
            ls = typeIDToStringID(ls);
            var vis = desc.getInteger(stringIDToTypeID( 'visible' ));
            if(ls == "layerSectionStart"){x++};
            if(layerName.match(/^<\/Layer group/) )
              y ++;
              r = x - y;
              if(r == 0 && ls == "layerSectionEnd")
                break
              continue
            nb++;
        return nb;
    function isSetOpened1( group ){
      app.activeDocument.activeLayer = group;
      xx = true;
      currSetIDX = getActiveLayerIndex();
      addTempLayerSetIn(currSetIDX-1);
      var fIdx = getActiveLayerIndex();
      makeActiveByIndex(currSetIDX+2, false);
      if(fIdx == getActiveLayerIndex())
        xx = false;
      deleteTempLayerSetbyIdx(currSetIDX+1);
      return xx;
    function addTempLayerSetIn(idxx){
        // =======================================================
        var idMk = charIDToTypeID( "Mk  " );
            var desc58 = new ActionDescriptor();
            var idnull = charIDToTypeID( "null" );
                var ref63 = new ActionReference();
                var idlayerSection = stringIDToTypeID( "layerSection" );
                ref63.putClass( idlayerSection );
            desc58.putReference( idnull, ref63 );
        executeAction( idMk, desc58, DialogModes.NO );
        // =======================================================rename
        var idsetd = charIDToTypeID( "setd" );
            var desc202 = new ActionDescriptor();
            var idnull = charIDToTypeID( "null" );
                var ref209 = new ActionReference();
                var idLyr = charIDToTypeID( "Lyr " );
                var idOrdn = charIDToTypeID( "Ordn" );
                var idTrgt = charIDToTypeID( "Trgt" );
                ref209.putEnumerated( idLyr, idOrdn, idTrgt );
            desc202.putReference( idnull, ref209 );
            var idT = charIDToTypeID( "T   " );
                var desc203 = new ActionDescriptor();
                var idNm = charIDToTypeID( "Nm  " );
                desc203.putString( idNm, "mb-dummy tempTestLayerSetOpen_Closed" );
            var idLyr = charIDToTypeID( "Lyr " );
            desc202.putObject( idT, idLyr, desc203 );
        executeAction( idsetd, desc202, DialogModes.NO );
        // =======================================================move
        var idmove = charIDToTypeID( "move" );
            var desc59 = new ActionDescriptor();
            var idnull = charIDToTypeID( "null" );
                var ref64 = new ActionReference();
                var idLyr = charIDToTypeID( "Lyr " );
                var idOrdn = charIDToTypeID( "Ordn" );
                var idTrgt = charIDToTypeID( "Trgt" );
                ref64.putEnumerated( idLyr, idOrdn, idTrgt );
            desc59.putReference( idnull, ref64 );
            var idT = charIDToTypeID( "T   " );
                var ref65 = new ActionReference();
                var idLyr = charIDToTypeID( "Lyr " );
                ref65.putIndex( idLyr, idxx );
            desc59.putReference( idT, ref65 );
            var idAdjs = charIDToTypeID( "Adjs" );
            desc59.putBoolean( idAdjs, false );
            var idVrsn = charIDToTypeID( "Vrsn" );
            desc59.putInteger( idVrsn, 5 );
        executeAction( idmove, desc59, DialogModes.NO );
    function deleteTempLayerSetbyIdx(idxx){
      // =======================================================
      var idDlt = charIDToTypeID( "Dlt " );
          var desc = new ActionDescriptor();
              var ref = new ActionReference();
              ref.putIndex(charIDToTypeID( 'Lyr ' ), idxx);
              // ref.putIdentifier(charIDToTypeID( 'Lyr ' ), idxx);
              desc.putReference( charIDToTypeID( 'null' ), ref );
      executeAction( idDlt, desc, DialogModes.NO );
    toogleOpenCloseSet();

  • Why, when I paste my selection in a new layer, is it 10 times larger than when I copied it?

    Why, when I paste my selection in a new layer, is it 10 times larger than when I copied it?

    Kevin If you don't understand don't try to take the discussion offline via private message.  Other that have the same problem will not benefit if taken offline here is you PM.
    Hi,
    Thanks for your response to my question. What is the best way to adjust to match resloutions of pictures/photos, etc in PSE 12. I am trying to layer photos and selections from photos but when I cut and paste, sometimes I get this HUGE image that doesn't even come close to fitting on the screen.
    Thanks!
    Kevin
    Kevin
    You need to understand pixels better know what is going on when you do things.  All pixels are not created equal.  Some have better quality the others.
    When you have a camera that take captures  3000x2000 px for an image and you have a good lens and exposure setting you wing up with 6,000,000 quality pixels for your image.
    If you resample that image  for the web to fit within 300x200 pixels you wind up with a 60,000 high quality web size image. Or a high quality image that will fit on your display at its resolution. The images resoultion setting is meanless for displays use their resolutuin they do not support image print DPI resolution setting.  And Displays do not hava a 72DPI resolution. 
    So when your post processing think about Pixels DPI is meaningless except when you use a unit based on DPI like inches.  However also remember Displays do no support the images print dpi resolution.  The only time 1" on display equal 1" in print is when the images print resolution is the same as the display you are using. All displays do not  have the same resolution/ Most desktop displaye are around 100DPI that is changing and Laptop and tablets can have resolution above 300DPI. So what will nor fit on your displat may well fix on a laptop or tablet.
    DPI is actual pixel size 100DPI pixels a 1/100" x 1/100" = 10,000 per square inch  300DIP 1/300"x 1/300"  90,000 px per sq inch.
    The same number on pixels image on a 300dpi display is 9 time larger on a 100Dpi display. What may not fit one your low resolution display may fit on the same size high resolution display for the display  displays more pixels then your display can.
    If you resample that 300x200 web size image to back to a 3000x2000 pixel image for print you wind up with 6,0000,000 lower quality pixels. 
    Though the 300X200 pixels image was a high quality web size image much of the original 6,000,000 image quality was reduced in the 300x200 px image. Much of the detail you had in the original 6,000,000 pixels image was discarded in the process.  The new 6,000,000 pixels image was made only from a 60,000pixel image they were not captures using a camera exposure.  The camera had the actual real detail in front of it to capture.  All the computer had were 300x200 pixels it has to add details for the larger image and it does by interpolating the 300x200px image.
    Preserve the pixel you get from your cameras. They are the highest quality pixels you will ever have for your images.  Every time you resample an image up or down in number of pixels you loose some image quality.   Not one of the original pixels remain intact you wind up with a totally new image created by interpolating the old image.  Do not save the new image over the old image and loose your good high quality pixels. 

  • Change default new layer order - top to bottom

    By default Adobe Photoshop creates new layers on top of the current layer. In the Western languages we read from top to bottom and left to right. So when I start creating a web site in Photoshop I start from top to bottom as well. However Photoshop creates the new layer above the current, which is the opposite of what I would like to do. I need Photoshop to create new layrs below the current layer. I know by holding CTRL/COMMAND and clicking the NEW LAYER icon, will do what I need. However if I do CTRL+J to jump/dublicate the current layer, or select a layer and ALT+DRAG again to dublicate it, again it puts the new layers in top. Is there a way to reverse the default order Photoshop places layers? If not, I suggest that to Adobe implement an option in the general settings for Photoshop. Flash for example had similar option to read/place layers from top to bottom or bottom to top. Thanks!

    Trevor.Dennis, yes you are correct that perhaps the new layer MIGHT be hidden, but since I am asking such quesiton I am aware that this might happen. I see your point and why what I need is not the default option in Photoshop. However, for some (like me for example), it will still be a lot better of I could tweak that as an optional setting KNOWING what I am doing and the risk behind it.

  • New layer for each artboard

    Hi,
    I've just recently started learning Illustrator and have used photoshop for a long time.  I have been getting on OK and yesterday had a file open with about 4 different artboards (was making wedding invitations) and went to start a 5th one and decided to add a new layer to this artboard and it then struck me that all the artboards had exactly the same layer!  Now as a photoshop user this bamboozled me and the photoshop part of me gets annoyed, because I would like every artboard to have a different set of layers so that they are always separate.  Can anyone tell me if I'm just not grasping how illustrator does things or is there a way to set up illustrator to have a new set of layers for every artboard?  Is it just a case that I have to create a new layer for each artboard manually?
    Sorry if this is a basic question, but I've searched for this answer but couldn't find it.
    Cheers in advance.
    Oh and just in case, I'm using CS5 on an iMac.

    and the photoshop part of me gets annoyed
    You need to "turn off" the photoshop part of you when working in Illustrator. Two entirely different worlds, and rightly so.
    because I would like every artboard to have a different set of layers so that they are always separate.
    If that's what you want, there are other programs in Illustrator's category which provide that. Corel Draw X3 is one example. In real use, though, page-specific layers is not the panacea you may think. It has resulted in much tedium and confusion and consternation in the Draw community.
    If you insist on working that way, there's no reason you can't set up your file with top-level Layers coresponding to each Artborad. But you'll probably soon find it more cumbersome and tedious than actually practical.
    Forget trying to think of Illustrator Layers and Photoshop Layers as similar things. They are not. Two entirely different constructs. That's a good thing. They should not be made to "work alike." If anything, Photoshop just needs to change the name from "Layers" to "Films" or "Overlays" or something like that, to help stop this widespread misconception among newcommers.
    JET

Maybe you are looking for

  • Problem with user exit EXIT_SAPLIEDI_001 for Inbound Idocs in replacing G/L

    Hello all, I am currently facing an issue where my IDOC where exit EXIT_SAPLIEDI_001 is not appearing to work properly. Basically I am using the FM that processes the inbound idoc (IDOC_INPUT_INVOIC_FI) to post an accounting document. We needed a sol

  • Keywords transferring to the filename in a folder

    I am exporting 140 photos from an album to 4 desktop folders to burn in sequential order in the album. I have entered "keywords" and would like those to show up as the file names in the folder rather than 001...002... Is there a way to do this withou

  • Set maximum matrix row and column size

    I hope someone can help me with this. Is there any way to set the row and column size of a matrix control? I have not been able to find a solution. The only way I've been able to set the size is by resetting matrix to its previous state if the user i

  • LR in 64bits architecture

    Hi, quick question. Does LR handles 64 bits OS (WinXp in my case) and is there any real improvements? Or it has only be implemented in 32 bits and uses the 64bits emulator of WinXp to run (resulting in the same performance)? Thanks !

  • Ipod zaps me when plugged into ac charger

    My ipod nano zaps me when i plug it in with an ac charger. (It actually hurts, not just a little zap) I've tried it with a few other ipods & mine's the only one that does it. Does anyone know if i can get this fixed when i dont have the receipt?