Scripting

Hier diskutieren die Anwender von PhotoLine untereinander
Antworten
Erhy
Mitglied
Beiträge: 198
Registriert: So 19 Feb 2012 10:17

Scripting

Beitrag von Erhy »

Hallo!
Mit PhotoLine 21.01 soll gemäß Ankündigung Bearbeitungen mit Scripts möglich sein.
Da ich ein altgedienter Programmierer bin, würd' ich das gern probieren.

Habt ihr einen Einstiegspunkt für mich unter Windows?

Danke
Erhy
Martin Huber
Entwickler
Entwickler
Beiträge: 4159
Registriert: Di 19 Nov 2002 15:49

Re: Scripting

Beitrag von Martin Huber »

Unter Windows befindet sich im PhotoLine-Verzeichnis im Ordner Infos die Datei "Scripting.zip". Diese enthält ein PDF mit der grundlegenden Beschreibung der verfügbaren VBScript-Schnittstellen und Beispielskripte.

Ich schreibe die Skripte normalerweise mit Notepad++. Dem kann man leicht beibringen, das Skript, das man momentan bearbeitet, aus Notepad++ heraus aufzurufen (einfach im Web nach "Notepad++ run wscript" suchen).
Wenn du aus Notepad++ ein Skript startest, wird automatisch auch PhotoLine gestartet, aber es bleibt unsichtbar. Daher starte ich normalerweise PhotoLine zuvor manuell selbst.

Martin
Erhy
Mitglied
Beiträge: 198
Registriert: So 19 Feb 2012 10:17

Re: Scripting

Beitrag von Erhy »

Danke, funktioniert sehr schön.

Ich bewundere das Script AdjustmentWithGradient.vbs

Habe die Vorgangsweise nun konventionell nachgeahmt und dabei einiges gelernt.

Die Arbeitsebene wurde mit Vorgänger gruppiert.

Habe das script abgewandelt, damit eine normale Arbeitsebene erstellt wird

Erhy

Code: Alles auswählen

' Script AdjustmentWithGradientAbove.vbs
Dim pl
Dim doc
Dim layer

Set pl = CreateObject("PhotoLine.Application")
Set doc = pl.ActiveDocument

pl.Visible = True

If Not doc Is Nothing Then
	Set layer = doc.ActiveLayer
	' Is the active layer an image without adjustments?
	' 1 is the equivalent of LayerType.LTImage
    If ((Not layer Is Nothing) And (layer.Type = 1) And (layer.AdjustmentsCount = 0)) Then
		Dim	adjustmentLayer
		Dim gradientDic
		
		Set gradientDic = CreateObject("PhotoLine.Dictionary")
		' First 0: GradientType.GTLinear
		gradientDic.Add "Type", 0, "Colors", Array(Array(0, 0, 0), Array(1, 1, 1)), "Stops", Array(0, 1), "Points", Array(0.5, 0, 0.5, 1)
		
		' Create an adjustment layer with the same size and position of
		' the active layer
		Set adjustmentLayer = layer.Duplicate()
		' First 0: PictureType.PTGray, Size parameter 2: CoordinateSystem.CSLayer
		' Use a gradient dictionary as fill color. Can also be an IPL color or an color
		' dictionary or an array of samples or a fill value.
		adjustmentLayer.InitPicture 0, layer.Size(2), gradientDic
		' Adjustment layer has the same transformation as the active layer.
		'not necessary because duplicated layer: adjustmentLayer.MatrixToPage = layer.MatrixToPage
		' Add an Curves adjustment. You can optionally use a PhotoLine.Dictionary
		' for the adjustment options.
		adjustmentLayer.InsertAdjustment -1, "Type", "Curves", "Contrast", 60, "CurveMain", Array(0, 0, 0.5, 0.6, 1, 1)
		
    End If
End If
Antworten