Danke für deine Beispieldateien. Ich bin wohl – wie die meisten anderen davon ausgegangen, dass das Pixelverhältnis der beiden Dateien auch gleich groß ist (und nicht nur die Anzahl) . So aber entspricht:
- in der Ausgangsdatei ein Pixel mit dem auszulesenden Farbwert
- in der Enddatei einer Vektorfläche (hexagonale Vektorform mit je 121×104 Pixeln).
Und wie wohl jeder verstanden hat: Zu jedem Pixel in der Ausgangsdatei existiert bereits eine Vektorform in der Endatei.
Ja. Das ist durchaus mit Skripting möglich. Allerdings bezweifle ich sehr stark, dass man die Anforderung mit Anfängerkenntnissen bewältigen kann. Mit Javascript allein kommt man nicht ans Ziel. Du soltest einige Codefragmente mit dem ScriptListener auslesen (bitte googlen) und den „Actionmanager-Code“ (nachfolgend AM-Code genannt) dann an deine Erfordernisse anpassen.
Dein ganzes Vorhaben ist in am Ehesten vergleichbar mit einem Maurerlehrling, der allein ein Haus bauen möchte. Das Dumme ist nur, dass er sich noch im ersten Ausbildungsmonat befindet.
Im Augenblick bin ich mit einem wirklich sehr großen und langwierigem Projekt beschäftigt. Deshalb ist es mir nicht möglich, dich hier im Forum bei der Skriptentwicklung zu begleiten. Denn eines ist sicher: Das Skript wäre bestimmt deutlich schneller geschrieben, als dich hier im Forum step-by-step „an die Hand zu nehmen“ und dir die Einzelschritte jeweils nachvollziehbar zu erklären. Dafür kann ich die erforderliche Zeit definitiv nicht aufbringen.
Was ich dir mitgeben kann, das ist ein „Fahrplan“.
- beide Dateien öffnen
- Ausgangsdatei als aktives Document setzen
- Ausgangsdatei auslesen ( ein Codefragment dafür hat dir
@sleep03less bereits in deinem alten Thread gepostet)
dazu
- eine Schleife für alle Pixel in einer Spalte erstellen
- mit dem colorSampler den Farbwert des aktuellen Pixels in einer Variable (Array) speichern
- (nächster Pixel in y)
- den ColorSampler entweder löschen und an der neuen Position neu erstellen
ODER per AM-Code auf den jetzt aktuellen Pixel verschieben
- mit dem colorSampler den Farbwert des aktuellen Pixels in der vorhandenen Variable speichern
- (nächster Pixel in y)
- …
- eine übergeordnete Schleife für alle Pixel in der Zeile erstellen
Damit erhältst du am Ende
eine Variable
mit allen Farbwerten aller Pixel.
Deine Enddatei ist zwar (für den Benutzer) logisch aufgebaut, dieser Aufbau ist beim Skripten aber eher hinderlich!!! Du müsstest jetzt durch die verschachtelten Ebenengruppen springen, um die Farbwerte an die Vektorflächen übertragen zu können. Ein vollkommen
unnötiger Mehraufwand (dauert wahrscheinlich auch um einiges länger) .
Hier wäre ein
einfacher Layeraufbau (ohne! jegliche LayerSets) mit direkt aufeinanderfolgenden Ebenen von 1 (nicht 0001) bis 5680
wesentlicher effektiver und unkomplizierter für einen Skriptablauf.
Die weiteren Schritte im Skriptablauf wären dann:
- Enddatei als aktives Dokument setzen
- in einer Schleife durch die Werte der Farbwert-Variable gehen und den jeweils aktuellen Farbwert des Schleifendurchganges als Farbe (über den korrespondierenden Vektorformebenen-Namen) für diese Vektorform festlegen (Achtung: AM-Code unabdingbar)
- nächster Farbwert aus dem Array …
- irgendwann … fertig
Das Ändern der Farbe einer Vektorform funktioniert leider
nicht durch eine simple Javascript-Anweisung. Auch hier muss man den Vorgang per ScriptListener in AM-Code übersetzen und diesen dann an deinen Javascript-Code anpassen. Wie gesagt – machbar, aber IMHO gewiß nicht mit Änfangerkentnissen.
Aber vielleicht irre ich mich ja. Und vielleicht postest du auch in Abständen deine Fortschritte und zeigst hier deinen Javascript-Code.
Normalerweise springt dann für dich immer wieder der eine oder andere gute Tipp durch die Forenmitglieder heraus.
Viele Grüße
pixxxelschubser