Contagem de número de camadas no Photoshop

2

Existe uma maneira de descobrir o número de camadas existentes em um .psd?

Eu tenho .psds que estão desacelerando terrivelmente. Existem 20-30 composições de camada e uma quantidade desconhecida de camadas. 1000? 5,0000? Não sei.

A razão para isso é começar a averiguar em que ponto o photoshop começa a engasgar. Se eu tiver o photoshop usando 90 de memória disponível, ele rapidamente consome 11GB, reduzindo a velocidade da minha caixa para outros propósitos e se eu deixar 50% (7GB), haverá uma pausa quando eu duplicar a camada menor (digamos, uma marca de verificação). uma caixa de seleção).

    
por Mayo 03.11.2015 / 18:44

6 respostas

5

Você pode usar o pacote psdtools do python para isso:

from __future__ import print_function
from psd_tools import PSDImage

psd = PSDImage.load('my_image.psd')
print("file has {} layers".format(len(psd.layers)))
    
por 03.11.2015 / 20:18
1

Apenas um pensamento: se você estiver em um Mac, as informações de arquivo do Finder (cmd-i) poderão ser úteis, pois lista todos os nomes das camadas sem precisar abrir o arquivo. Você pode copiar isso em um editor de texto com numeração de linha e substituir todas as vírgulas por feeds de linha. A numeração de linhas revelaria o número de camadas (não testei o que acontece com vírgulas nos nomes das camadas).

EDITAR:

Mais uma descoberta: o Gimp possui um painel de informações que mostra a contagem de camadas para um arquivo psd (Menu: Image > Image Properties )

    
por 03.11.2015 / 19:41
0

Infelizmente, não há recurso automático para contar a camada, mas aqui você pode usar esse script -

var totalProgress = 0// I assume this is defined eleswhere but is needed for the scriptler
function layerCounter(inObj)  // recursive function to count layers
{
    totalProgress+= inObj.artLayers.length;       
    for( var i = 0; i < inObj.layerSets.length; i++) {
        totalProgress++;
      layerCounter(inObj.layerSets[i]);  // recursive call to layerCounter
    }
   return totalProgress;
}

function getLayerCount(){
   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 getLayerType(idx) {
       var ref = new ActionReference();
       ref.putProperty( charIDToTypeID("Prpr") , stringIDToTypeID("layerSection"));
       ref.putIndex(charIDToTypeID( "Lyr " ), idx);
       return typeIDToStringID(executeActionGet(ref).getEnumerationValue(stringIDToTypeID('layerSection')));
   };
   var cnt = getNumberLayers();
   var res = cnt;
   if(activeDocument.layers[activeDocument.layers.length-1].isBackgroundLayer){
         var i = 0;
         //comment out line below to exclude background from count
         res++;
      }else{
         var i = 1;
      }; 
   for(i;i<cnt;i++){
      var temp = getLayerType(i);
      if(temp == "layerSectionEnd") res--;
      //if(temp == '"layerSectionStart") res--;//uncomment to count just artLayers
   };
   return res;
};

function main()
{
   var answer = confirm("Go through your file and count all the layers??");
   if(answer) {
      var reporter1 = layerCounter(app.activeDocument);
      alert("Kyletunney.com - All done! Layer count = " + reporter1);
   } else {
      reporter2 = getLayerCount();
      alert("Kyletunney.com - All done! Layer count = " + reporter2);

   }   
}

main();

Salve o script como .jsx

Como usar o script?

  • Abra o Photoshop com o arquivo que você deseja contar
  • Clique em "Arquivo"
  • Em seguida, "Scripts"
  • Agora clique em "Navegar"
  • Encontre o script que você acabou de salvar e clique em Carregar
  • Agora, você será solicitado a enviar uma mensagem "Visualizar seu arquivo e contar todos os camadas "Clique em" Sim "
  • Agora você será informado da quantidade de camadas no seu arquivo!
por 03.11.2015 / 20:21
0

Ok, isso pode soar bobo e simples (se você tiver o Photoshop), mas a maneira mais fácil é abrir o documento no Photoshop e clicar no botão Nova camada na parte inferior do painel de camadas. A nova camada será automaticamente denominada "Camada 450" ou mais uma que o número das camadas atualmente no documento.

    
por 27.04.2016 / 18:59
0

Se você estiver usando um Mac, execute este script no Editor de scripts:

tell application "Adobe Photoshop CC 2015.5"
    activate
    set theDOC to the current document
    tell theDOC
        set numberOfLayers to count of layers
        display dialog numberOfLayers as string
    end tell
end tell
    
por 14.07.2016 / 22:01
0

Faça o seguinte:

  1. Na barra de status, no canto inferior esquerdo da janela de edição, clique na seta apontando para a direita.

  • No menu pop-up exibido, selecione "Contagem de camadas".
  • Leia o número de camadas na barra de status.
  •     
    por 10.01.2017 / 15:10