Scripting

Hier diskutieren die Anwender von PhotoLine untereinander

Moderator: Hoogo

Erhy
Mitglied
Posts: 113
Joined: Sun 19 Feb 2012 10:17

Scripting

Post by Erhy » Thu 22 Nov 2018 15:37

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
Posts: 3263
Joined: Tue 19 Nov 2002 15:49

Re: Scripting

Post by Martin Huber » Thu 22 Nov 2018 16:26

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
Posts: 113
Joined: Sun 19 Feb 2012 10:17

Re: Scripting

Post by Erhy » Sun 25 Nov 2018 16:36

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: Select all

' 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