Antworten auf deine Fragen:
Neues Thema erstellen

Illustrator AI – Farben zusammenführen mittels Script?

jscreativelab

Noch nicht viel geschrieben

Ich habe eine völlig verhunzte Illustrator Datei. Keine Ahnung, wie ich das geschafft habe. Ich muss für das Geschäft sehr viele verschiedene Figuren illustrieren. Da es diesselben Figuren in anderen Kostümen sind, wurde die gleiche Datei mit vielen (80) Zeichenflächen genutzt (nach Jahre sortiert).

Jetzt wollte ich mal überprüfen, wie es mit den Farben aussieht, ob alle Volltonfarben für den Druck haben etc. pp, angefangen bei der ersten erstellen Vektorfigur.

Aber: oh schreck! Ich habe pro Figur gefühlt 30 Farben, welche alle angeblich vorhanden sein sollten. Dazu zählen rot in 15 unterschiedlichen Farben, Grau in 10 unterschiedlichen Farben und so weiter... joa. Hmmmm. Ich schätze mal, dass ich (vor allem während der Lehrzeit) vieles mit Farbprofilen verschlimmert habe und der Mischung/Kopiererei von CMYK/RGB Figuren. Ich habe ja nicht bewusst 15 Rottöne verwendet.

Ich wollte ein Script nutzen (mit ChatGPT halt, da ich mich mit scripten nicht auskenne) und wollte ähnliche Farben automatisch zusammenführen lassen, damit ich das nicht händisch selber machen muss. Dann wäre ich, da es wahrscheinlich alle Figuren betrifft, noch bis gefühlt Weihnachten drann.

Das Ziel wäre es eigentlich, eine Druckdatei mit Vollton/Patone zu generieren und separat eine dann im RGB Bereich.

Leider nützt mir keiner der bereitgestellten Scripte.
Code:
function mergeSimilarColors() {
    var doc = app.activeDocument;
    var tolerance = 5; // Tolerance percentage

    // Function to calculate the difference between two colors
    function colorDifference(color1, color2) {
        if (color1.typename === "RGBColor" && color2.typename === "RGBColor") {
            return Math.sqrt(
                Math.pow(color1.red - color2.red, 2) +
                Math.pow(color1.green - color2.green, 2) +
                Math.pow(color1.blue - color2.blue, 2)
            );
        } else if (color1.typename === "CMYKColor" && color2.typename === "CMYKColor") {
            return Math.sqrt(
                Math.pow(color1.cyan - color2.cyan, 2) +
                Math.pow(color1.magenta - color2.magenta, 2) +
                Math.pow(color1.yellow - color2.yellow, 2) +
                Math.pow(color1.black - color2.black, 2)
            );
        } else {
            return Infinity; // Different color spaces
        }
    }

    // Function to merge colors
    function mergeColors(targetColor, sourceColor) {
        for (var i = 0; i < doc.pageItems.length; i++) {
            var item = doc.pageItems[i];
            if (item.filled && item.fillColor.typename === sourceColor.typename && colorDifference(item.fillColor, sourceColor) <= tolerance) {
                item.fillColor = targetColor;
            }
            if (item.stroked && item.strokeColor.typename === sourceColor.typename && colorDifference(item.strokeColor, sourceColor) <= tolerance) {
                item.strokeColor = targetColor;
            }
        }
    }

    // Iterate through all swatches and merge similar colors
    var colorSwatches = doc.swatches;
    for (var i = 0; i < colorSwatches.length; i++) {
        var targetSwatch = colorSwatches[i];
        for (var j = i + 1; j < colorSwatches.length; j++) {
            var sourceSwatch = colorSwatches[j];
            if (colorDifference(targetSwatch.color, sourceSwatch.color) <= tolerance) {
                mergeColors(targetSwatch.color, sourceSwatch.color);
                sourceSwatch.remove();
                j--;
            }
        }
    }

    alert("Similar colors have been merged.");
}

mergeSimilarColors();

Manchmal hilft ChatGPT ja recht gut, aber mir fehlen selber die Kenntnisse, um das Script entsprechend anzupassen. Wenn ich es in Illustrator ausführe, kommt zwar die Meldung, dass zusammengeführt wurde - passiert ist aber nichts.

Vielleicht hat einer von euch ja einen Tipp? Hier der Google Drive Link mit 3 Screenshots
Vielen Dank
 
Zuletzt bearbeitet:

Vektorprogramme

jscreativelab

Noch nicht viel geschrieben

Danke für deine Antwort @buerzel :)
Leider ist das auch ein Prozess, der länger dauern würde. Denn: Er weiss ja nicht, welche Farben ich bewusst gewählt habe. So muss ich auch bei dem "neu färben" Prozess die Farben selber auswählen/bestimmen. Er erkennt jetzt nicht, dass ich bewusst diese Farben für diese Figur gewählt habe. (Hab sonst mal den Screenshot angefügt) Und wenn ich die Anzahl reduzieren will, ist das mit auswählen - gleich (oder irgendwie so) auch ein recht umständlicher Prozess (besser gesagt). Ist fast noch mehr Arbeit, als es im Farbfeld auszuwählen und mittels Kontextmenü "zusammenzuführen". Oder ich mache was falsch :)

Denn bei mir wird zB dies auch nicht als Farbgruppe angezeigt wie im Video sondern einzeln. Und dann bin ich wieder da, wo ich am Anfang war. Es händisch hin und her schieben und zusammenführen.

Daher die Idee mittels Script.
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.547
Beiträge
1.537.955
Mitglieder
67.468
Neuestes Mitglied
WieFra
Oben