1

In this video a girl has copied an image several times. When I do the same the following happens:

"image" (copy 2) "image" (copy 1) "image" (source)

How can I number the layers without the copy-addition like in the video?

"image 2" "image 1" "image" (source)

I'm using Photoshop CC 2015.5.0 on Windows 10.

3

That's the default behavior it can not be changed. However you can make a plugin that monitors the scene and auto renames things on the fly not sure if its worth the time and effort, though.

However. if your ready to relax your requirement a bit renaming a bunch of layers after they are created without a sentinel to do it automatically is trivial be compression. This has probably been done to the death, let me google for a second:

  • Yes its been done in layerRenamer by Kamil Khadeyev for example
  • It's strange that this is a default option which can't be change, instead I've found the layerRenamer by Kamil Khadeyev which works even better. Thank you very much for your help, joojaa! – Aphia Oct 19 '16 at 8:20
  • @Aphia not so strange, some design choices need to be made at some point. If you make everything easily customizable then some other function will suffer. So it a trade of if i spend time on X i am not spending time on Y. – joojaa Oct 19 '16 at 8:30
  • Well it can't be changed to what the OP wants, but if you uncheck add "copy" to copied layers In the Layers panel options, at least it'll be a bit cleaner. – Joonas Oct 19 '16 at 9:44
3

If you're interested in scripting, here's a sample script that adds numbers to duplicated layers:

enter image description here

It's not perfect, as we can see in the gif, after I click on number 4 and continue using the script, it increments the number based on the previously active layer. It could be modified to find all layers with a similar name and find the layer with the biggers number, but it would be incredibly slow in most real world situations where you got more than 10 layers. That's why this sample is made to be dumb.

var Doc = app.activeDocument;

Doc.suspendHistory( 'Duplicate With Numbers', 'init()');

function init() {

    var Layer = Doc.activeLayer;
    var LayerName = Layer.name;
    var r = /(\d+)/;
    var LayerNumber = LayerName.match( r );

    var newLayer = Layer.duplicate();

    if ( !LayerNumber ) {
        Layer.name = trim( LayerName) + ' 1';
    }

    Doc.activeLayer = newLayer;

    if ( !LayerNumber ) {

        newLayer.name = trim( LayerName ) + ' 2';

    }
    else {

        LayerNameArray = LayerName.split( r );
        newLayer.name = trim( LayerNameArray[0] ) + ' ' + ( parseInt( LayerNumber ) + 1 );

    }

}


function trim (str) {  
    return str.replace(/^\s+/,'').replace(/\s+$/,'');  
}  
  • Yes obviuously that way but ideally one would want it to work on all the existing copy methods. If not then you probably will have a easier time renaming it after the fact. Too bad adobe does not expose most of the GUI events to the scripting layer then making proper extensions would be easier. – joojaa Oct 19 '16 at 10:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.