Forenindex » Programmierung/Entwicklung » AppleScript » ID CS3 Bilder mit Alpha Kanal plazieren

ID CS3 Bilder mit Alpha Kanal plazieren

Anonym
Beiträge gesamt: 22827

2. Nov 2008, 17:50
Bewertung:

gelesen: 2671

Beitrag als Lesezeichen
Hallo Hans, hallo Gemeinde,

ich bin mir ziemlich sicher, dass ich diese Frage hier schonmal gepostet habe, kann sie aber nicht finden...

Ich möchte mit Applescript ein TIF Bild mit Alpha Kanal positionieren. An welcher Stelle stelle ich das ein? Properties hinter „place“? Und was sind diese „image IO preferences“

Hilfe, bitte. Ich will ins Bett...

ID CS3 Bilder mit Alpha Kanal plazieren

Hans Haesler
  
Beiträge gesamt: 5826

2. Nov 2008, 20:03
Bewertung:

gelesen: 2670

Beitrag als Lesezeichen
Hallo Edgar,

der place-Befehl zum Importieren einer Bilddatei muss mit on an das Ziel gerichtet werden: die Seite oder ein ausgewählter Rahmen oder ein benannter Rahmen usw.

Bei einem ausgewählten Rahmen sieht der Code so aus:
---
tell document 1 of application "Adobe InDesign CS3"
   activate
   set filePath to (choose file) as Unicode text
   place file filePath on selection
end tell
---

Wenn Du den Alpha-Kanal als Maske einstellen möchtest, dann sollte es so gelingen:
---
tell document 1 of application "Adobe InDesign CS3"
   activate
   set filePath to (choose file) as Unicode text
   place file filePath on selection
   tell graphic 1 of selection
      set clipping type of clipping path to alpha channel
   end tell
end tell

---

Der place-Befehl kann mit Optionen ergänzt werden. Zum Beispiel:
---
tell document 1 of application "Adobe InDesign CS3"
   activate
   set filePath to (choose file) as Unicode text
   place file filePath on selection with showing options
end tell
---
Dadurch wird der Dialog mit den Importoptionen geöffnet.

Die image IO preferences kannst Du so erfahren: Einen Bildrahmen, welcher ein Bild enthält, auswählen und dieses Script starten.
---
tell document 1 of application "Adobe InDesign CS3"
   tell graphic 1 of selection
      tell image IO preferences
         properties
      end tell
   end tell
end tell

---
Gruss, Hans

ID CS3 Bilder mit Alpha Kanal plazieren

Anonym
Beiträge gesamt: 22827

2. Nov 2008, 20:08
Bewertung:

gelesen: 2670

Beitrag als Lesezeichen
Hallo Hans,

ich möchte keinen Clipping path, sondern eine TIF-Datei mit Alphakanal platzieren.

die showing options möchte ich dabei nicht haben. Das Bild soll direkt mit dem angegebenen Alpha Kanal „Alpha 1“ platziert werden.

ID CS3 Bilder mit Alpha Kanal plazieren

Hans Haesler
  
Beiträge gesamt: 5826

2. Nov 2008, 21:32
Bewertung:

gelesen: 2670

Beitrag als Lesezeichen
Hallo Edgar,

das habe ich alles befürchtet ...

Doch sehe ich keine Möglichkeit, einen Alpha-Kanal per Script einzustellen.

Gruss, Hans

ID CS3 Bilder mit Alpha Kanal plazieren

Anonym
Beiträge gesamt: 22827

2. Nov 2008, 21:35
Bewertung:

gelesen: 2670

Beitrag als Lesezeichen
Oh mein Gott. Etwas, das Du nicht kannst? ;-) Das kann doch gar nicht sein...
Warum wird denn dann in der Bibliothek unter image IO preference der "alpha channel name (string) : The name of the alpha channel." erwähnt? Wenn ich den unter "image IO preference" des Bildes abfrage steht er auf "". Aber er lässt sich nicht umstellen. Schicker wäre sowieso, wenn ich den direkt im "place"-Vorgang wählen könnte.

ID CS3 Bilder mit Alpha Kanal plazieren

Hans Haesler
  
Beiträge gesamt: 5826

2. Nov 2008, 23:02
Bewertung:

gelesen: 2670

Beitrag als Lesezeichen
Hallo Edgar,

ich kann leider nicht zaubern ...

Abgesehen davon wird in Dokumentationen das Importieren von Bildern kaum erwähnt. Unter den Scripts, welche sich nach  der Installation im Ordner "...:Scripts Panel:Samples:AppleScript" befinden, ist nur das fehlerhafte "Image Catalog". Und in einer separaten CS3-Beispielsammlung gibt es 59 Scripts zur Behandlung von Texten. Aber kein einziges für das Laden von Bildern.

Im CS3-Scripting-Handbuch wird allerlei erklärt. Aber erneut rein nichts zum Behandeln von Bildern.

Gruss, Hans

ID CS3 Bilder mit Alpha Kanal plazieren

Anonym
Beiträge gesamt: 22827

2. Nov 2008, 23:26
Bewertung:

gelesen: 2670

Beitrag als Lesezeichen
Code
Hallo Hans, 

ich habe etwas gebastelt, das funktioniert.

tell document 1 of application "Adobe InDesign CS3"
    set AlphaCh to "Alpha 1" as string
    activate
    set filePath to (choose file) as Unicode text
    place file filePath on selection with properties {image IO preferences:{alpha channel name:AlphaCh}}


das Problem ist bis hierhin, dass der Alphakanal zwar mit reingeschrieben wurde, das Bild aber nicht "freigestellt" angezeigt wird. Die nachfolgende Routine führt dazu, dass das Bild korrekt dargestellt wird.

Code
    set LinkName to name of item link of graphic 1 of selection 
    update link LinkName
end tell


Keuch. Zwar nicht besonders sexy, aber erfolgreich.

ID CS3 Bilder mit Alpha Kanal plazieren

Hans Haesler
  
Beiträge gesamt: 5826

3. Nov 2008, 08:22
Bewertung:

gelesen: 2670

Beitrag als Lesezeichen
Hallo Edgar,

Gratulation!

Ich hatte es auch mit dem ersten Teil Deiner Lösung versucht. Doch es kam mir nicht in den Sinn, dass das Updaten des Links das gewünschte Ergebnis bringen könnte.

Es funktioniert. Aber ... wenn dasselbe Bild ein zweites Mal importiert wird, dann klappt es nicht mehr. Weshalb kann ich nicht sagen.

Mögliche Abhilfe: Das Updaten aller gleichnamigen Links.
---
tell document 1 of application "Adobe InDesign CS3"
   set AlphaCh to "Alpha 1"
   activate
   set filePath to (choose file) as Unicode text
   place file filePath on selection with properties ¬
      {image IO preferences:{alpha channel name:AlphaCh}}
   set LinkName to name of item link of graphic 1 of selection
   update (every link whose name is LinkName)
end tell
---

Doch besser wäre, nicht den Namen, sondern den ganzen Link zu verwenden. Dann muss nur das aktuelle Bild aufgefrischt werden:
---
tell document 1 of application "Adobe InDesign CS3"
   set AlphaCh to "Alpha 1"
   activate
   set filePath to (choose file) as Unicode text
   place file filePath on selection with properties ¬
      {image IO preferences:{alpha channel name:AlphaCh}}
   set curLink to item link of graphic 1 of selection
   update curLink
end tell
---

Gruss, Hans

ID CS3 Bilder mit Alpha Kanal plazieren

Anonym
Beiträge gesamt: 22827

3. Nov 2008, 09:54
Bewertung:

gelesen: 2670

Beitrag als Lesezeichen
Hallo Hans,

ja, dass mit dem update aller Bilder hatte ich auch schon eingebaut. Aber Deine Lösung ist natürlich wesentlich besser und schneller, da ich bis zu 200 verknüpfte Dokumente in der Datei habe.

Ich bin auf die Lösung auch nur durch Zufall gekommen, als ich die image IO preferences des platzierten Bild abgefragte habe und gesehen habe, dass der Alpha Kanal mit reingeschrieben wurde.

Ich arbeite grade noch an einer anderen Lösung und melde mich dann wieder.