Hallo.
Nach langer Zeit möchte ich nun auch mal wieder eine Frage stellen.
Ich habe in einer Skript Sammlung ein Skript gefunden das mir alle Bilder auf eine anzugebende Größe verkleinert.
Quellcode:
Jetzt habe ich verändert das ich nicht die Höhe angeben kann, sonder die Breite. Das ist kein Hexenwerk und funktioniert auch.
Nun möchte ich aber eigentlich nicht einen Stapel Bilder auswählen, sondern einen Ordner in dem Bilder drin sind die dann entsprechend abgefragt werden. Dafür habe ich den oberen Teil vom Code angepasst.
Das abfragen in dem Ordner an sich scheint nach Appleskript Editor auch zu funktionieren. Mir wird im Ergebnissbereich am unteren Fensterrand angezeigt das das die Liste mit den Dateien generiert wurde.
An der Stelle
bekomme ich die Fehlermeldung das die Variable ImageFile nicht vergeben wäre. Ich vermute das es damit zu tun hat das die Dateitypen nicht über openTypes bekannt gegeben werden. Allerdings gelingt mir die Einbindung nicht. Egal wo ich es hinschreibe oder wie ich es probiere, jedes mal werde ich mit einer Fehlermeldung gestraft und das Skript bricht ab.
Wer kann helfen und mir sagen wie ich es anstellen muss das der Ordnerinhalt abgefragt und die Bilder das entsprechend umgewandelt werden?
vg
djmaq
Nach langer Zeit möchte ich nun auch mal wieder eine Frage stellen.
Ich habe in einer Skript Sammlung ein Skript gefunden das mir alle Bilder auf eine anzugebende Größe verkleinert.
Quellcode:
Code:
property openTypes : {"PDF", "com.adobe.pdf", "BMP", "com.microsoft.bmp", "JPEG", "JPEG2", "jpg", "public.jpeg", ¬
"PICT", "com.apple.pict", "PNG", "public.png", "PSD", "com.adobe.photoshop-image", "TIFF", "public.tiff"}
--Get the artwork file
set theFiles to choose file with prompt "Choose art file(s)" of type openTypes with multiple selections allowed without invisibles
runConversion(theFiles)
on open someFiles
runConversion(someFiles)
end open
on runConversion(theItems)
set saveFolder to choose folder with prompt "Save resized pictures where?" without multiple selections allowed and invisibles
display dialog "Max height?" default answer "600"
set newHeight to (text returned of the result) as integer
tell application "Image Events"
launch
set newWidth to 0
if (count items of theItems) is greater than 0 then
repeat with anItem in theItems
set imageFile to (open anItem)
set theSize to dimensions of imageFile
set width to item 1 of theSize
set height to item 2 of theSize
set ratio to (width / height)
set newWidth to (ratio * newHeight) as integer
if newHeight > newWidth then
scale imageFile to size newHeight
else
scale imageFile to size newWidth
end if
save imageFile as JPEG in saveFolder
close imageFile
end repeat
else
display dialog "Nothing to convert."
end if
end tell
end runConversion
Jetzt habe ich verändert das ich nicht die Höhe angeben kann, sonder die Breite. Das ist kein Hexenwerk und funktioniert auch.
Nun möchte ich aber eigentlich nicht einen Stapel Bilder auswählen, sondern einen Ordner in dem Bilder drin sind die dann entsprechend abgefragt werden. Dafür habe ich den oberen Teil vom Code angepasst.
Code:
property openTypes : {"PDF", "com.adobe.pdf", "BMP", "com.microsoft.bmp", "JPEG", "JPEG2", "jpg", "public.jpeg", ¬
"PICT", "com.apple.pict", "PNG", "public.png", "PSD", "com.adobe.photoshop-image", "TIFF", "public.tiff"}
--Get the artwork file
set theFolder to choose folder with prompt "Ordner wählen"
tell application "Finder"
set theFiles to every file of theFolder
end tell
runConversion(theFiles)
on open someFiles
runConversion(someFiles)
end open
on runConversion(theItems)
set saveFolder to choose folder with prompt "Save resized pictures where?" without multiple selections allowed and invisibles
display dialog "Max height?" default answer "600"
set newWidth to (text returned of the result) as integer
tell application "Image Events"
launch
set newHeight to 0
if (count items of theItems) is greater than 0 then
repeat with anItem in theItems
set imageFile to (open anItem)
set theSize to dimensions of imageFile
set width to item 1 of theSize
set height to item 2 of theSize
set ratio to (height / width)
set newHeight to (ratio * newWidth) as integer
if newHeight > newWidth then
scale imageFile to size newHeight
else
scale imageFile to size newWidth
end if
save imageFile as JPEG in saveFolder
close imageFile
end repeat
else
display dialog "Nothing to convert."
end if
end tell
end runConversion
Das abfragen in dem Ordner an sich scheint nach Appleskript Editor auch zu funktionieren. Mir wird im Ergebnissbereich am unteren Fensterrand angezeigt das das die Liste mit den Dateien generiert wurde.
An der Stelle
Code:
set theSize to dimensions of imageFile
Wer kann helfen und mir sagen wie ich es anstellen muss das der Ordnerinhalt abgefragt und die Bilder das entsprechend umgewandelt werden?
vg
djmaq