Paint Shop Pro script: If AspectRatio

  • Onderwerp starter Onderwerp starter Eelc
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Eelc

Gebruiker
Lid geworden
24 okt 2011
Berichten
6
Hallo,

Ik wil via een PspScript een serie afbeeldingen bewerken:
Afbeelding verkleinen naar een standaard breedte.
Dit kan prima met een opgenomen script.

Het kan echter voorkomen dat er een - in verhouding - heel hoge afbeelding tussen zit.
Deze wil ik niet verkleinen naar een standaard breedte, maar naar een standaard hoogte.
Tot nu toe 'run' ik daarom handmatig 2 verschillende scripts, waarbij zelf ik uitzoek welk plaatje met welk script.

Nu wil ik deze twee scripts graag combineren, waarbij het script zelf op basis van de AspectRatio (Breedte-Hoogte verhouding) beslist of er naar standaard breedte of standaard hoogte moet worden verkleind.
Ik heb daarvoor wel een If statement gevonden, alleen lukt het niet om die op een goede manier te voeden.

Wat lukt is:
if AspectRatio > 2:
doe dan het ene
else doe het andere.
Althans: als ik zelf aan AspectRatio een waarde toeken via MsgBox.

Wat niet lukt is aan 'AspectRatio' een waarde toe te kennen die het script zelf uit elke te manipuleren afbeelding haalt.

Vraag: Hoe laat ik het script de AspectRatio opvragen (aan de afbeelding zelf) om deze in het if statement te gebruiken.

Alvast bedankt,

Eelc

NB: Ik heb een vergelijkbare vraag over de kleurdiepte.
Die stel ik in een ander bericht.
 
Laatst bewerkt:
Ha, opgelost !

def Do(Environment):
ImageKeys = [ 'ExifPixelHeight', 'ExifPixelWidth']
Info = App.Do( Environment, 'ReturnImageInfo' )

print 'Afbeeldingsgegevens: '

breed = Info['ExifPixelWidth']
hoog = Info['ExifPixelHeight']
print breed, ' x ', hoog, ' pixels'

# de gegevens in unicode omzetten naar een getal (float):
breed = float(breed)
hoog = float(hoog)

Ratio = breed / hoog
print 'AspectRatio :', Ratio
print

Wanneer je de gegevens niet naar het script output window wilt sturen is het korter.
Je kunt dan ook gelijk de vertaalslag naar float maken:

def Do(Environment):
ImageKeys = [ 'ExifPixelHeight', 'ExifPixelWidth']
Info = App.Do( Environment, 'ReturnImageInfo' )

breed = float(Info['ExifPixelWidth'])
hoog = float(Info['ExifPixelHeight'])

Ratio = breed / hoog
print 'AspectRatio :', Ratio


Tot help,

Eelc
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan