[GastForen Programmierung/Entwicklung AppleScript CMYK-Farben erzeugen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

CMYK-Farben erzeugen

Hans Haesler
  
Beiträge gesamt: 5826

23. Aug 2002, 18:16
Beitrag # 1 von 2
Bewertung:
(2250 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es gibt viele Möglichkeiten, per Script eine Farbe zu erzeugen. Aber ein Problem bleibt immer gleich: "Wie rechne ich die Prozentwerte um?"

Hier ein Beispiel. Ein Dialog verlangt den Namen der neuen Farbe. Darauf wird sofort getestet, ob die Farbe nicht schon existiert. Sollte dies der Fall sein, erscheint ein Dialog. Nach dem Klick auf "OK" wird der Ablauf abgebrochen.

Im Textfeld des zweiten Dialogs kann der Anwender die Prozentwerte eingeben (mit Zwischenräumen trennen, z.B.: "100 50 0 0"). Diese Werte werden mit einer Repeat-Schleife zur Konvertierungs-Routine geschickt. Dort werden sie mit 655.35 multipliziert (100% hat einen CMYK-Wert von 65535). Der 'div'-Operator sorgt dafür, dass die Werte als "normale" Ganzzahlen in die Liste der Vierfarben-Werte gesetzt werden. Mit exponentieller Notierung (= 6.5535E+4) könnte XPress die eingetippten Prozente nicht richtig umsetzen:
---
tell document 1 of application "QuarkXPress 4.11"
 activate
 set colorList to name of color specs
 repeat
  set colorName to text returned of ¬
   (display dialog "Name der neuen Farbe" default answer "")
  try
   if colorName is in colorList then error
   exit repeat
  on error
   display dialog ¬
    "Die Farbe \"" & colorName & "\" existiert bereits." with icon 2
  end try
 end repeat
 set percentList to text returned of ¬
  (display dialog "Prozentwerte der neuen Farbe" default answer "")
 set valList to {}
 repeat with i from 1 to 4
  try
   set x to (word i of percentList) as real
  on error
   set x to 0
  end try
  set end of valList to my convToVal(x)
 end repeat
 make color spec at end with properties ¬
  {name:colorName, separation:true, CMYK color value:valList}
end tell

on convToVal(x)
 set x to (x * 655.35) div 1
end convToVal
---
Wenn viele Farben erzeugt werden müssen, dann ist es natürlich besser, einen anderen Weg zu gehen. Man kann die Namen und die Werte in einer Textdatei speichern, welche das Script liest und umsetzt.

Die gleiche Technik kann auch verwendet werden, wenn in verschiedenen Dokumenten schon bestehende Farben geändert werden sollen. Wer Interesse hat, melde sich bitte bei mir.

---
Hans Haesler <hsa@ringier.ch>
X

CMYK-Farben erzeugen

T. Kaltschmidt
Beiträge gesamt: 94

23. Aug 2002, 18:52
Beitrag # 2 von 2
Beitrag ID: #417948
Bewertung:
(2250 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Klasse Hans!
Probier ich gleich mal aus.

Schöne Grüße
Thomas


als Antwort auf: [#417947]