PaintShop Pro 2020 : Rebouclage de script
Posté : 27 juil. 2020, 16:09
J'ai de plus en plus de problème pour exécuter un script, qui doit enregistrer ma photo à deux endroits, après un traitement assez long.
Cela doit être tout au début du script qu'il reboucle et impossible à l'arrêter par la barre d'outils, je dois cliquer sur le menu Fichier-Script-Arrêter.
Ensuite j'essaie quand même d'enregistrer une copie de mon travail en tif. Le fichier s'enregistre, mais pas correctement.
Il faut ensuite que je ferme et rouvre PSP. Voilà le résultat :
La première photo en bas c'est celle que j'ai ouvert pour traiter (DNG) et la seconde la copie enregistrée en tif. Mais ça n'arrive pas tout le temps...
Voici le début de mon script
Il n'arrive pas jusqu'ici car la couche active ne change pas !
Cela doit être tout au début du script qu'il reboucle et impossible à l'arrêter par la barre d'outils, je dois cliquer sur le menu Fichier-Script-Arrêter.
Ensuite j'essaie quand même d'enregistrer une copie de mon travail en tif. Le fichier s'enregistre, mais pas correctement.
Il faut ensuite que je ferme et rouvre PSP. Voilà le résultat :
La première photo en bas c'est celle que j'ai ouvert pour traiter (DNG) et la seconde la copie enregistrée en tif. Mais ça n'arrive pas tout le temps...
Voici le début de mon script
Code : Tout sélectionner
from PSPApp import *
import PSPUtils
import os
def ScriptProperties():
return {
'Author': u'F.Schneider',
'Copyright': u'2014-2019 Copyright by F.Schneider',
'Description': u'',
'Host': u'PaintShop Pro',
'Host Version': u'21.00'
}
def GetCurrentLayerName( Environment, Doc ):
# Returns the name of the current layer in Doc
LayerInfo = App.Do( Environment, 'ReturnLayerProperties', {}, Doc )
return LayerInfo[ 'General' ][ 'Name' ]
def getsize(filename):
# Return the size of a file, reported by os.stat().
return os.stat(filename).st_size
def Do(Environment):
# EnableOptimizedScriptUndo
App.Do( Environment, 'EnableOptimizedScriptUndo', {
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Default,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((19,0,0),1)
}
})
if PSPUtils.RequireADoc( Environment ) == False:
return
if App.ActiveDocument.Name == '':
Size = 0
else:
Size = getsize(App.ActiveDocument.Name)
Width = App.ActiveDocument.Width
Height = App.ActiveDocument.Height
FName = App.ActiveDocument.Name
Props = App.Do( Environment, 'ReturnLayerProperties' )
PathBack = Props[ 'Path' ]
FoundLayer = True
while FoundLayer == True:
Code : Tout sélectionner
FoundLayer = App.Do( Environment, 'SelectPreviousLayer', {
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Silent,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((19,0,0),1)
}
})
FoundLayer = App.Do( Environment, 'SelectNextLayer', {
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Silent,
'AutoActionMode': App.Constants.AutoActionMode.Match,
'Version': ((19,0,0),1)
}
})
FoundLayer = True
LayerName = ''
while FoundLayer == True:
LayerName = GetCurrentLayerName( Environment, App.TargetDocument)
...