AppleScript voor iPhoto 4 doet niet wat ik wil
28 januari 2004 - 23:12   
geplaatst door: Toivo
Omdat iPhoto 4 erg goed zou zijn en beter samenwerkt met andere iApps, heb ik besloten mijn hele digitale fotocollectie (en dat zijn er nogal wat) in iPhoto 4 te beheren inplaats van iView Media Pro dat ook niet zonder gekke fouten zit.

Mijn Canon digitale camera levert JPEG's met de naam IMG_3809.JPG en omdat ik alles sorteer op fotonummer en dat IMG_ en .JPG wel geloof, wil ik de titel van de foto's na import veranderen naar 3809.

Simpel. Je schrijft een AppleScript dat de filenaam bekijkt, de IMG_ en de JPG er af sloopt en het in het titelveld stopt. Uurtje werk, testen, draaien, klaar. Of toch niet? Want na het stoppen en weer starten van iPhoto zijn de meeste titels helemaal leeg (ik heb in het View-menu de titels aanstaan, maar ik zie ze niet meer in het sorteer-scherm).

Is dit in een bug in mijn AppleScript of is dit een bug in iPhoto 4? Ik denk het laatste. Graag jullie oordeel. Test dit ook eens. Overigens werkt de Batch-change die in iPhoto zit wel prima, dus ik kan de boel weer in de oorspronkelijke situatie terugkrijgen.

Laat jullie kundig oog er eens over schijnen!

Toivo.


tell application "iPhoto"
activate
copy (my selected_images()) to these_images
if these_images is false then ¬
error "Please select the images to include in the summary."

-- images are selected, get confirmation for changing titles
set the image_count to the count of these_images
display dialog "Reset " & (image_count as string) & " titles to image numbers?"

-- do loop to get the filenames of each of the images
repeat with i from 1 to the image_count
set this_photo to item i of these_images
tell this_photo
set the image_title to the image filename as string
-- strip JPEG suffix
if the image_title ends with ".JPG" then ¬
set the image_title to text 1 thru (the (length of image_title) - 4) of image_title

-- strip Canon prefix
if the image_title starts with "IMG_" then ¬
set the image_title to text 5 thru (the length of image_title) of image_title

-- strip Sony prefix
if the image_title starts with "DSC" then ¬
set the image_title to text 4 thru (the length of image_title) of image_title
set the title to the image_title
end tell
end repeat
display dialog "Done!"
end tell

on selected_images()
tell application "iPhoto"
try
-- get selection
set these_items to the selection
-- check for single album selected
if the class of item 1 of these_items is album then error
-- return the list of selected photos
return these_items
on error
return false
end try
end tell
end selected_images

Time is nature's way of keeping everything from happening at once.
AppleScript voor iPhoto 4 doet niet wat ik wil
28 januari 2004 - 23:52    reactie #1
geplaatst door: hitchhiker
Bij mij doet ie het gewoon op een stuk of wat Fuji-plaatjes haalt ie netjes de DSC en de .jpg eraf. iPhoto gestopt en opnieuw gestart. DSC en .jpg zijn nog steeds weg.
Ik heb alleen iPhoto 2. :withstupid:
AppleScript voor iPhoto 4 doet niet wat ik wil
29 januari 2004 - 08:53    reactie #2
geplaatst door: zonapple
Misschien moet je in plaats van

set the title to the image_title
set the image file name to (image_title as unicode text)

gebruiken. Zo staat het mij mij in de dictionary van iPhoto (2).

There's 10 types of people in this world, those who understand binary and those who don't.
AppleScript voor iPhoto 4 doet niet wat ik wil
29 januari 2004 - 10:31    reactie #3
geplaatst door: simone
Kun je niet iets slims uithalen met de nieuwe functie 'Wijzig groep' onder het menu Foto's in iPhoto 4, waarmee je in een klap een hele groep foto's van een andere naam kunt voorzien?
bv stel Titel in op [Tekst]
laat het tekstveld vervolgens leeg en alle foto's krijgen alleen een (nieuw) volgnummer
of
Stel titel in op [Bestandnaam]
en de toevoeging .jpg vervalt (het IMG_ blijft wel voor de foto staan.)
succes
CU Simone
Simone weet alles,
of ze vraagt alles...
AppleScript voor iPhoto 4 doet niet wat ik wil
29 januari 2004 - 11:16    reactie #4
geplaatst door: Toivo
@hitchhiker: Dus bij jou werkt het script wel goed? Dan ligt het daar niet aan, zou je zeggen. Dan ligt het toch aan iPhoto 4...
@zonapple: Jouw script zou de _bestandsnamen_ van de foto's wijzigen, dat is niet wat ik wil. Ik kan nog wel even de typecast invoegen naar unicode text.
@simone: De Batch change...-functie gebruik ik om alles weer in het gerede te herstellen. Het lukt me alleen niet iets te doen dat slimmer is dan de mogelijkheden die er zijn: een vaste tekst, leegmaken, de bestandsnaam, enzovoort. Vandaar juist het Apple-script.

Wat ik gedaan heb is alsvolgt:
1. Kies het sorteerscherm van iPhoto
2. Selecteer in het View-menu de optie 'Title', dan verschijnt de titel van elk beeld onder de thumbnail;
3. Bij het importeren van foto's maakt iPhoto automatisch de titel uit de bestandsnaam zonder extensie; ik ben dan al een eind in de goeie richting;
4. Ik laat het scriptje draaien zoals hierboven aangegeven
5. Alles lijkt te gaan zoals gepland; de titel verandert keurig van IMG_3089 naar 3089 en in het thumbnaildisplay verandert alles vrolijk mee;
6. Ik stop iPhoto en en ik start iPhoto weer.
7. De met het script veranderde titels zijn grotendeels verloren gegaan. Als ik bijvoorbeeld 6 foto's in de selectie had om de titel te veranderen, dan is de eerste altijd goed gegaan, de nummers 2 t/m 6 hebben in het thumbnail-scherm geen nummer meer, maar in het titel-veld links meestal nog de originele naam (IMG_3089) maar soms ook juist de veranderde naam (3089).
8. Opnieuw het script draaien biedt geen soulaas. De titels veranderen niet,
9. Eerst de Batch-change functie draaien en dan opnieuw mijn script draaien geeft meestal hetzelfde effect
10. Wat altijd werkt is met de hand veranderen van de titels.

Vreemd. En toch raar.

Nog iemand anders heldere ideeën?

Toivo.

Time is nature's way of keeping everything from happening at once.
AppleScript voor iPhoto 4 doet niet wat ik wil
29 januari 2004 - 16:05    reactie #5
geplaatst door: hitchhiker
Ik heb het script ongewijzigd in de Script Editor gemikt en bewaard. iPhoto gestart, een paar foto's geselecteerd en het script gedraaid. Namen bleken gewijzigd en zijn dat tot nu toe gebleven, na inmiddels 3 herstarts van iPhoto.