In PS (ab Version 7) lässt sich nahezu alles automatisieren.
Kopiere folgenden Code in eine neue Textdatei und nenne sie 'irgendwas.vbs'
Voraussetzung ist PS7 (incl. Scripterweiterung) oder höher:
Ablauf: Erstelle in neues Dokument (vorzugsweise quadratisch) in beliebiger Größe, anschliessend Doppelklick auf die vbs Datei und zurücklegen
Script geändert, da es nur bei quadratischen Dokumenten fehlerfrei lief.
Gruß hotschen
Kopiere folgenden Code in eine neue Textdatei und nenne sie 'irgendwas.vbs'
Voraussetzung ist PS7 (incl. Scripterweiterung) oder höher:
Code:
Option Explicit
Dim appref
Set appref = CreateObject("Photoshop.Application")
Dim docref
Set docref = appref.ActiveDocument
dim startRulerUnits
startRulerUnits=appRef.Preferences.RulerUnits
appref.Preferences.RulerUnits =5 'Pixel
dim B,X1,X2,Y1,Y2,delta,i,anz
docref.ArtLayers.Add
anz=CInt(InputBox ("Anzahl der Kreise angeben","Kreise",15))
B = CInt(InputBox ("Kreisstärke angeben","Kreise",10))
x1 = B
y1 = B
y2 = docref.Width - B
x2 = docref.Height - B
If docref.width > docref.height then
delta = (docref.height / 2 - B) / anz
else
delta = (docref.Width / 2 - B) / anz
End If
For i = 1 To anz
scriptlist x1, y1, x2, y2
docref.Selection.Stroke appref.ForegroundColor, B
x1 = x1 + delta
y1 = y1 + delta
x2 = x2 - delta
y2 = y2 - delta
Next
appRef.Preferences.RulerUnits=startRulerUnits
Sub scriptlist(x1, y1, x2, y2)
DIM dialogMode
dialogMode = 3
Dim objApp
Set objApp = CreateObject("Photoshop.Application")
Dim id21
id21 = objApp.CharIDToTypeID("setd")
Dim desc4
Set desc4 = CreateObject("Photoshop.ActionDescriptor")
Dim id22
id22 = objApp.CharIDToTypeID("null")
Dim ref1
Set ref1 = CreateObject("Photoshop.ActionReference")
Dim id23
id23 = objApp.CharIDToTypeID("Chnl")
Dim id24
id24 = objApp.CharIDToTypeID("fsel")
Call ref1.PutProperty(id23, id24)
Call desc4.PutReference(id22, ref1)
Dim id25
id25 = objApp.CharIDToTypeID("T ")
Dim desc5
Set desc5 = CreateObject("Photoshop.ActionDescriptor")
Dim id26
id26 = objApp.CharIDToTypeID("Top ")
Dim id27
id27 = objApp.CharIDToTypeID("#Pxl")
Call desc5.PutUnitDouble(id26, id27, x1)
Dim id28
id28 = objApp.CharIDToTypeID("Left")
Dim id29
id29 = objApp.CharIDToTypeID("#Pxl")
Call desc5.PutUnitDouble(id28, id29, y1)
Dim id30
id30 = objApp.CharIDToTypeID("Btom")
Dim id31
id31 = objApp.CharIDToTypeID("#Pxl")
Call desc5.PutUnitDouble(id30, id31, x2)
Dim id32
id32 = objApp.CharIDToTypeID("Rght")
Dim id33
id33 = objApp.CharIDToTypeID("#Pxl")
Call desc5.PutUnitDouble(id32, id33, y2)
Dim id34
id34 = objApp.CharIDToTypeID("Elps")
Call desc4.PutObject(id25, id34, desc5)
Dim id35
id35 = objApp.CharIDToTypeID("AntA")
Call desc4.PutBoolean(id35, True)
Call objApp.ExecuteAction(id21, desc4, dialogMode)
End Sub
Script geändert, da es nur bei quadratischen Dokumenten fehlerfrei lief.
Gruß hotschen
Zuletzt bearbeitet: