Welkom! Ben je al een geregistreerd forumlid, log dan in met de knop Inloggen of registreren uiterst rechts bovenaan je scherm. Is dit je eerste bezoek Om berichten te bekijken selecteer je een forum in het onderstaande overzicht. Om zelf berichten te plaatsen moet je je eerst (gratis) registreren: klik daarom op Registreer.
Wil jij ook de werking van Belgiumdigital ondersteunen? Verleng of start dan je vzw-lidmaatschap en geniet van voordelen bij activiteiten en kortingen bij onze partners.
Druk is wel een groot woord. Bij viel mijn mond gewoon open bij al dit lekkers ( ik heb het hier over de links en het maken van de scripts )Alhoewel sarah ook gezien mag worden.
Veel scripts die je op internet vindt zijn wel goed maar momenteel heb ik er al zo veel dat je gewoon niet meer weet welke je moet gebruiken. Ben ze dus nu aan het selekteren.
Graag had ik meer geweten inverband met het script van die kader.
Ik vind het namelijk zeer belangrijk dat je de gegevens er kunt bijzetten , zo heb je in een oogopslag veel meer informatie en hieruit ga je ook veel meer leren denk ik.
Kan je hier meer info over geven .
@Tubbs (en alle anderen natuurlijk): Hier al een begin. Allereerst wil ik meegeven dat er al een script bij PSP zit dat EXIF-data op de foto zet (het noemt EXIF-Captioning). Dat heeft ook aan de basis gelegen van mijn script.
Ik ga niet enkel mijn scriptje geven, maar ga pogen het systeem uit te leggen, zodat je zelf kan opvragen wat je nodig acht.
Allereerst zullen we even een scriptje uitproberen dat alle EXIF-data uitleest. Zo op zich is dit niet bruikbaar maar het geeft je een idee van alle mogelijke parameters, want dat is anders ook niet altijd zo duidelijk.
-----------------------
from JascApp import *
def ScriptProperties():
return {
'Author': 'x',
'Copyright': 'x',
'Description': 'Get EXIF camera and exposure information .',
'Host': 'Paint Shop Pro 8',
'Host Version': '8.00'
}
for key in ImageInfo:
print '%-40s: %s' % (key, ImageInfo[key])
# All done!
-----------------------
Kopieer alles wat tussen de stippellijnen staat hierboven in een tekstbestandje en bewaar dat in de folder 'Scripts-Restricted' van PSP met de extentie '.PspScript' vb 'EXIF-Test.PspScript'
Als je nu een foto opendoet, het juist bewaarde script zoekt in de lijst en dit uitvoert krijg je, in het 'Script Output'-venster een lijst met de namen en hun waarden van alle mogelijke EXIF-velden.
(Als je het 'Script Output'-venster niet hebt druk dan even op F3)
Het belangrijkste in bovenstaande script staat in de regels
----------------------
def Do(Environment):
ImageInfo = App.Do( Environment, 'ReturnImageInfo')
----------------------
Dit bevel haalt eigenlijk de EXIF-gegevens op van de foto en zet deze in de variabele 'ImageInfo'. Dit is niet zomaar een simpele variabele maar meer een lijst met verschillende gegevens dewelke we nu kunnen uitlezen.
Is iedereen mee?
Dan stoppen we ermee voor nu en gaan we de rest voor wat later bewaren
Probeer dit eerst eens uit en indien vragen, laat maar komen, ik zal proberen te antwoorden...
Aan alle PSP8 gebruikers ik heb hier een link gemaakt althans geprobeerd naar een zip file met verschillende scripts. Wat ze juist doen moet je zelf maar proberen.
Op de knop scripts drukken en het spel zou moeten kunnen worden gedownload.
Vergeef men tot nu nog triestige site. Maar ik ben er nog mee bezig. Alle begin is moeilijk.
Nu die even hier uitpluizen en verklaren. Opgelet, ik ben zeker geen doorwinterde Phyton-programmeur dus het kan best zijn dat er betere oplossingen zijn.
---------------------------------------------------------- *** Eerst de klassieke hoofding (voor PSP) ***
from JascApp import *
import string
import JascUtils
*** Eerst gaan we een kader toevoegen *** *** Mijn kader wordt 50 breed en wordt opgebouwd in 5 stappen *** *** Stap 1: witte boord toevoegen, 14 pixels breed ***
*** Volgende stap: EXIF-data uitlezen *** *** Als we geen Exif vinden, meld het even ;-) ***
# first extract the EXIF data - if we can't find any just return without changing the image
ImageInfo = App.Do( Environment, 'ReturnImageInfo' )
if ImageInfo['ExifMake'] == '' or ImageInfo['ExifModel'] == '' or ImageInfo['ExifFNumber' ] == '' or ImageInfo['ExifExposureTime'] == '':
App.Do(Environment, 'MsgBox', {
'Buttons': App.Constants.MsgButtons.OK,
'Icon': App.Constants.MsgIcons.Stop,
'Text': 'No EXIF data found on the current image.',
})
return
*** Even de gegevens ophalen die we nodig hebben ***
# now assemble exposure information by using the aperture and exposure
*** Het model van het toestel (voor mij C740UZ) ***
TheModel = ImageInfo['ExifModel'].strip()
*** Het diafragma: is een getal, wordt dan naar tekst omgezet ***
TheAperture = u'f%s ' % (float(ImageInfo['ExifFNumber']))
TheApertureTxt = u'%s ' % (TheAperture)
*** Belichtingstijd: staat in Exif als 'second', door die [:-3] worden laatste 3 tekens weggegooid ***
TheExposure = ImageInfo['ExifExposureTime'].strip()[:-3]
*** Brandpuntsafstand lens, staat als tekst maar ik wil nog omrekenen *** *** [:-3] haalt ' mm' weg, zodat getal overblijft ***
*** Even herformateren en equivalent 35 mm uitrekenen (/63*380 voor mijn toestel) ***
TheLens =u' %s mm (%i mm ~35mm) ' %(TheLensF,TheLensF / 63 * 380)
*** Nu nog alle stukjes aan elkaar plakken... ***
CaptionTextExif = TheModel + ' @' + TheLens + ' ' + TheExposure + ' ' + TheAperture + ' ' + TheISO
*** Om de tekst te tonen hebben we eerst een vectorlaag nodig ***
# now create a vector layer to put text on - creating the layer will make it active
App.Do( Environment, 'NewVectorLayer', {
'General': {
'Opacity': 100,
'Name': 'EXIF Text',
},
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Silent,
}
})
*** Eerst de lijn met EXIF ***
# place the line of text
App.Do( Environment, 'Text', {
'CreateAs': App.Constants.CreateAs.Vector,
'Segments': [{
*** We gebruiken Times New Roman, Italic (schuin), grootte 12 in het zwart ***
'Fill': {
'Color': (0,0,0),
'Pattern': None,
'Gradient': None,
'Texture': None,
},
'Font': u'Times New Roman',
'Italic': App.Constants.Boolean.true,
'PointSize': 12, *** We zetten hem linksonder op 35 pixels van de linkerkant, 10 pixels boven de onderrand ***
'Start': (35, App.TargetDocument.Height - 10 ),
'Stroke': None,
'LineStyle': None,
'LineWidth':0,
'SetText': App.Constants.Justify.Left,
},{
'Characters': CaptionTextExif
}],
'FinalApply': App.Constants.Boolean.false,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Silent,
'AutoActionMode': App.Constants.AutoActionMode.Match
}
})
*** We zetten ook nog een copyright ***
# place the line of text
App.Do( Environment, 'Text', {
'CreateAs': App.Constants.CreateAs.Vector,
'Segments': [{
*** We zetten hem rechtsonder op 35 pixels van de rechterkant, 8 pixels boven de onderrand ***
'Start': (App.TargetDocument.Width - 35, App.TargetDocument.Height - 8 ),
'Stroke': None,
'LineStyle': None,
'LineWidth':0,
'SetText': App.Constants.Justify.Right,
},{
*** Die \u00A9 geeft het copyrightsymbool ***
'Characters': u'\u00A9FilMar'
}],
'FinalApply': App.Constants.Boolean.false,
'GeneralSettings': {
'ExecutionMode': App.Constants.ExecutionMode.Silent,
'AutoActionMode': App.Constants.AutoActionMode.Match
}
})
*** Voila, we zijn rond... ***
---------------------------------------------------------------
Zo, ik hoop dat iemand er wat aan heeft. Als er nog vragen zijn probeer ik die graag te beantwoorden.
Als er nu een Phyton-programmeur kreupel ligt door mijn kronkels (vooral bij het uitlezen en formateren van de Exif) hoor ik het ook graag want vooral dat gedeelte heb ik nog niet helemaal gesnapt, maa het werkt blijkbaar
Ik vind deze kader het mooist rond foto's op formaten rond de 800x600, dan is de verhouding foto/kader ideaal.
Comment