[GastForen Programmierung/Entwicklung AppleScript Photoshop eckige Auswahl von rundem Freisteller

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

Photoshop eckige Auswahl von rundem Freisteller

TMA
Beiträge gesamt: 399

4. Jan 2007, 08:58
Beitrag # 1 von 10
Bewertung:
(3222 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo zusammen und allen ein angenehmes neues jahr,

folgendes problem:

1. ich habe in einer photoshop(CS2) bilddatei einen freisteller
2. der freisteller ist rund mit z.B. 5 ankerpunkten
3. ich möchte eine eckige auswahl von dem runden freisteller erstellen (indem der runde freisteller komplett enthalten ist, also die äußersten grenzen des runden freistellers)

alles was ich per as-script zurück bekomme wenn ich die ankerpunkte abfrage ist:

1. die ankerpunkte
2. die linken und rechten koordinaten der, ich nenn sie mal auszieher, der ankerpunkte

so, anhand dieser wird ja die bezierkurve berechnet. und weiter?

frage nun:
ist es möglich irgendwie die äußeren kanten zu berechnen und davon eine eckige auswahl zu erstellen, oder gehts auch ganz einfach anders.

z.B. wenn ich den runden pfad als auswahl lade und den dann transformieren will (apfel-t) hat photoshop ja auch irgendwoher die äußeren werte (ps zeigt mir ja nen eckigen rahmen zum transformieren). bloß wie komm ich da ran?

gruß
TMA
X

Photoshop eckige Auswahl von rundem Freisteller

TMA
Beiträge gesamt: 399

4. Jan 2007, 14:56
Beitrag # 2 von 10
Beitrag ID: #421402
Bewertung:
(3221 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hat sich erledigt. habs hinbekommen. jemand interesse?

gruß
TMA


als Antwort auf: [#421401]

Photoshop eckige Auswahl von rundem Freisteller

Hans Haesler
  
Beiträge gesamt: 5826

4. Jan 2007, 16:02
Beitrag # 3 von 10
Beitrag ID: #421403
Bewertung:
(3221 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TMA,

auch Dir ein gutes neues Jahr!

Ja, ich habe Interesse an Deiner Lösung, obwohl ich
praktisch nie Photoshop-Scripts schreibe.

[Ich hatte in der Mittagspause ebenfalls versucht,
eine Lösung zu finden, konnte mich aber nicht lange
genug damit befassen.]

Gruss, Hans


als Antwort auf: [#421401]

Photoshop eckige Auswahl von rundem Freisteller

TMA
Beiträge gesamt: 399

5. Jan 2007, 06:41
Beitrag # 4 von 10
Beitrag ID: #421404
Bewertung:
(3221 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi hans,
hab gestern mal a bisl im netz recherchiert.

leider bekommt man nicht die bounds einer seletion in ps. der bounds eintrag ist zwar vorhanden wird aber (noch) nicht unterstützt.

daher ein kleiner workaround (abkürzungen lk=linke kante, ok=obere kante usw.):

1. auswahl eines freistellers laden
2. neue ebene erstellen und in dieser die auswahl mit z.B. weiß füllen
3. die bounds von dem neuen layer holen (lk, ok, rk, uk) (da hätten wir nun die bounds, werden in punkt angegeben)
4. select region {{lk,ok},{rk,ok},{rk,uk},{lk,uk}} (der erste punkt ist oben links, dann gehts im uhrzeigersinn weiter. hier die punkt angaben in pixel umrechnen, {x,y})


tell application "Adobe Photoshop CS2"
   activate
   tell front document
      set tmpFactor to resolution / 72
      set tmpHistory to current history state
      
      create selection of path item 1
      set current layer to make new art layer at beginning with properties {name:"tmpBounds"}
      fill selection with contents {class:RGB color, red:255, green:255, blue:255}
      set thebounds to bounds of layer "tmpBounds"
      
      set current history state to tmpHistory
      
      set tmpItemOne to ((item 1 of thebounds) * tmpFactor)
      set tmpItemTwo to ((item 2 of thebounds) * tmpFactor)
      set tmpItemThree to ((item 3 of thebounds) * tmpFactor)
      set tmpItemFour to ((item 4 of thebounds) * tmpFactor)
      
      select region {{tmpItemOne, tmpItemTwo}, {tmpItemThree, tmpItemTwo}, {tmpItemThree, tmpItemFour}, {tmpItemOne, tmpItemFour}}
   end tell
end tell



gruß
TMA


als Antwort auf: [#421401]

Photoshop eckige Auswahl von rundem Freisteller

Hans Haesler
  
Beiträge gesamt: 5826

5. Jan 2007, 07:32
Beitrag # 5 von 10
Beitrag ID: #421405
Bewertung:
(3221 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TMA,

vielen Dank!

Erst wollte es mit dem Zurücksetzen des history state nicht klappen.
Aber jetzt funktioniert es.

Die Namen der Variablen könnte man kürzer halten: bds (statt thebounds)
x1 (statt tmpItemOne usw.):
---
select region {{x1, y1}, {x2, y1}, {x2, y2}, {x1, y2}}
---

Gruss, Hans


als Antwort auf: [#421401]

Photoshop eckige Auswahl von rundem Freisteller

TMA
Beiträge gesamt: 399

5. Jan 2007, 07:52
Beitrag # 6 von 10
Beitrag ID: #421406
Bewertung:
(3221 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
klar, hab ich auch so gemacht. habs direkt als 2 zeiler bei mir gemacht. get bounds und select region.

zur leichteren verständnis hab ichs jedoch hier anders gepostet. die zeile ist sonst ein wenig lang...

gibts eigentlich einen as-befehl zum erstellen und benennen eines pfades aus der neuen auswahl?
habs nämlich jetzt per javascript gelöst da ich in as keinen geeigneten befehl gefunden habe.
wie zB:
make new path item from selection with properties {name:"eckig"}

gruß
TMA


als Antwort auf: [#421401]

Photoshop eckige Auswahl von rundem Freisteller

Hans Haesler
  
Beiträge gesamt: 5826

5. Jan 2007, 09:06
Beitrag # 7 von 10
Beitrag ID: #421407
Bewertung:
(3221 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TMA,

ich habe etwas nachgeforscht, aber leider nichts gefunden.

Gruss, Hans


als Antwort auf: [#421401]

Photoshop eckige Auswahl von rundem Freisteller

TMA
Beiträge gesamt: 399

5. Jan 2007, 09:12
Beitrag # 8 von 10
Beitrag ID: #421408
Bewertung:
(3221 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi hans,
hab bisher auch nichts gefunden. mit javascript gehts aber auch gut...

danke und gruß
TMA


als Antwort auf: [#421401]

Photoshop eckige Auswahl von rundem Freisteller

TMA
Beiträge gesamt: 399

5. Jan 2007, 10:28
Beitrag # 9 von 10
Beitrag ID: #421409
Bewertung:
(3221 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
die rumrechnerei mit der resolution und dem factor kann man sich natürlich sparen... mein ps stand dummerweise auf punkt-einheiten anstatt sofort richtig auf pixel... natürlich werden die bounds in der einheit zurückgegeben in der die lineale eingestellt sind wobei bei einer neuen auswahl immer mit pixel gearbeitet wird...

gruß
TMA


als Antwort auf: [#421401]

Photoshop eckige Auswahl von rundem Freisteller

TMA
Beiträge gesamt: 399

6. Jun 2007, 05:20
Beitrag # 10 von 10
Beitrag ID: #421410
Bewertung:
(3221 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Scripter,
wen es interessiert:
zu oben beschriebenen Thematik hat sich was geändert (Photoshop CS2):
Zitat leider bekommt man nicht die bounds einer seletion in ps. der bounds eintrag ist zwar vorhanden wird aber (noch) nicht unterstützt.


In Photoshop CS3 ist dies nun möglich.
Code
get bounds of selection 



Gruß
TMA


als Antwort auf: [#421401]
X