Como Criar Camadas de Cores no Adobe Illustrator Usando Scripts

No Adobe Illustrator, a organização de elementos com base nas suas cores pode ser uma tarefa demorada, especialmente em projetos complexos com muitos objetos coloridos. No entanto, ao utilizar scripts, podemos automatizar esta tarefa e poupar tempo valioso. Neste artigo, vamos explorar um script útil que cria automaticamente uma camada para cada cor distinta nos objetos selecionados, nomeando cada camada com o nome da cor correspondente.

Script para organizar-illustrator por cores

O que é um Script no Adobe Illustrator?

Scripts são conjuntos de comandos que podem ser executados automaticamente para realizar tarefas específicas. No Adobe Illustrator, podemos utilizar JavaScript (ExtendScript) para criar scripts que ajudam a automatizar tarefas repetitivas ou complexas, melhorando a eficiência do nosso fluxo de trabalho.

O Script: Criar Camadas para Cada Cor

Este script específico percorre todos os objetos selecionados no documento ativo, identifica a cor de preenchimento de cada objeto, e cria uma nova camada para cada cor distinta. A camada é nomeada com o nome da cor (como “Vermelho”, “Verde”, etc.), e o objeto é movido para essa camada.

O Código do Script

// Script para criar uma camada para cada cor no Adobe Illustrator

function createLayersForColors() {
    if (app.documents.length === 0) {
        alert("Nenhum documento aberto.");
        return;
    }

    var doc = app.activeDocument;
    if (doc.selection.length === 0) {
        alert("Nenhum objeto selecionado.");
        return;
    }

    var colorLayers = {};
    var items = doc.selection;


    for (var i = 0; i < items.length; i++) {
        var item = items[i];
        var fillColor = item.fillColor;
        var colorName = getColorName(fillColor);

        if (!colorLayers[colorName]) {
            var newLayer = doc.layers.add();
            newLayer.name = colorName;
            colorLayers[colorName] = newLayer;
        }

        item.moveToBeginning(colorLayers[colorName]);
    }

    alert("Camadas criadas para cada cor.");
}


function getColorName(color) {
    if (color.typename === "RGBColor") {
        return getRGBColorName(color.red, color.green, color.blue);
    } else if (color.typename === "CMYKColor") {
        // Converter CMYK para RGB para simplificar a identificação da cor
        var rgb = CMYKtoRGB(color.cyan, color.magenta, color.yellow, color.black);
        return getRGBColorName(rgb.red, rgb.green, rgb.blue);
    } else if (color.typename === "GrayColor") {
        return "Cinza";
    } else {
        return "Cor Desconhecida";
    }
}

function getRGBColorName(r, g, b) {
    var colors = [
        { name: "Preto", r: 0, g: 0, b: 0 },
        { name: "Branco", r: 255, g: 255, b: 255 },
        { name: "Vermelho", r: 255, g: 0, b: 0 },
        { name: "Verde", r: 0, g: 255, b: 0 },
        { name: "Azul", r: 0, g: 0, b: 255 },
        { name: "Amarelo", r: 255, g: 255, b: 0 },
        { name: "Ciano", r: 0, g: 255, b: 255 },
        { name: "Magenta", r: 255, g: 0, b: 255 },
        { name: "Cinza", r: 128, g: 128, b: 128 },
        { name: "Laranja", r: 255, g: 165, b: 0 },
        { name: "Rosa", r: 255, g: 192, b: 203 },
        { name: "Roxo", r: 128, g: 0, b: 128 },
        { name: "Marrom", r: 165, g: 42, b: 42 },
        { name: "Verde Claro", r: 144, g: 238, b: 144 },
        { name: "Azul Claro", r: 173, g: 216, b: 230 }
    ];


    var minDistance = Infinity;
    var closestColor = "Cor Desconhecida";


    for (var i = 0; i < colors.length; i++) {
        var distance = Math.sqrt(
            Math.pow(colors[i].r - r, 2) +
            Math.pow(colors[i].g - g, 2) +
            Math.pow(colors[i].b - b, 2)
        );


        if (distance < minDistance) {
            minDistance = distance;
            closestColor = colors[i].name;
        }
    }

    return closestColor;
}


function CMYKtoRGB(c, m, y, k) {
    var r = 255 * (1 - c / 100) * (1 - k / 100);
    var g = 255 * (1 - m / 100) * (1 - k / 100);
    var b = 255 * (1 - y / 100) * (1 - k / 100);
    return { red: r, green: g, blue: b };
}


createLayersForColors();

Como Utilizar o Script

  1. Abra o Adobe Illustrator: Certifique-se de que tem um documento aberto e com objetos selecionados.
  2. Selecione os Objetos: Selecione os objetos para os quais deseja criar camadas separadas com base na cor.
  3. Execute o Script: Vá para Arquivo > Scripts > Outro Script..., navegue até onde guardou o script e selecione-o.
  4. Verifique o Resultado: O script criará camadas para cada cor distinta e moverá os objetos para as camadas correspondentes.

Explicação do Código

  • createLayersForColors: Esta função principal percorre todos os objetos selecionados e identifica a cor de preenchimento de cada um. Se a cor ainda não tiver uma camada associada, cria uma nova camada e move o objeto para lá.
  • getColorName: Esta função retorna o nome da cor baseado nas propriedades RGB ou CMYK. Para cores CMYK, converte os valores para RGB.
  • getRGBColorName: Esta função compara os valores RGB com uma lista predefinida de cores comuns e retorna o nome da cor mais próxima.
  • CMYKtoRGB: Converte valores de cor CMYK para RGB, facilitando a comparação e nomeação das cores.

Conclusão

A utilização de scripts no Adobe Illustrator pode simplificar e automatizar tarefas repetitivas, poupando tempo e melhorando a eficiência do seu fluxo de trabalho. Este script específico, que cria camadas baseadas em cores e as nomeia de forma descritiva, é um excelente exemplo de como a automação pode melhorar a organização dos seus projetos. Experimente e veja como pode agilizar o seu processo de design!

Com ou sem scripts sabe qual a melhor gráfica online? É com certeza a Webnial Gráfica Online, que oferece a melhor qualidade ao melhor preço.

INDIQUE O SEU EMAIL, E RECEBA O CUPÃO
Inscrever
Consinto o tratamento dos dados para uso de acordo com a política de privacidade
Receba todas as promoções por email!
Inscrever
Consinto o tratamento dos dados para uso de acordo com a política de privacidade
Receba 7€ de desconto na sua 1ª encomenda
Cupão válido até dia 30 de abril!
Inscrever
Consinto o tratamento dos dados para uso de acordo com a política de privacidade