Homekoti |
Mac /
StripResources(* StripResources Strip HFS resource fork from image files. The file types accepted to be stripped are gif, jpeg, jpeg2000 and png. Usually the resource fork of an image file contains a custom icon. The resource fork is useless, if an image file is sended outside the Mac platform. Most image manipulation apps can be set not to save anything into resource fork. If you still have images with resources which need to be stripped, this script does it. Author Tuomas Rosberg 2005 Public domain. No warranty of any kind. The author is not responsible for any damages the user causes to her files with this script. Written and tested on Mac OS X 10.3. Requires Mac OS X BSD subsystem (is in default installation). Functionality is based on BSD copy command (cp). It does not copy resource fork or HFS file type or creator. Paste into a Script Editor window. Save as an application, without opening screen. *) -- Script run from Finder or Script menu. on run tell application "Finder" set theItems to selection if (count of theItems) is 0 then my aDialog() -- Help text else if (count of theItems) is 1 then -- Is it the application file of this process? if (first item of theItems as alias) is (path to me) then -- Yes it was. my aDialog() else -- No it wasn't. my stripResources(theItems) end if else -- There more than one items in the selection my stripResources(theItems) end if end tell end run ------------ Or ------------ -- Items dropped onto the script app. on open theItems my stripResources(theItems) end open ------------ The main functionality ------------ on stripResources(theItems) repeat with anItem in theItems set anItem to anItem as alias -- stupid AppleScript if fileTest(anItem) is true then set aString to random number from 10000 to 99999 tell application "Finder" set parentFolder to container of anItem as alias set filePath to "\"" & POSIX path of anItem & "\"" set temp to filePath set parentFolder to POSIX path of parentFolder set newName to "\"" & parentFolder & (aString as string) & "\"" end tell try do shell script "mv -f " & temp & " " & newName & " | cp " & newName & " " & filePath & "| rm -f " & newName end try end if end repeat end stripResources ------------ Utility handlers ------------ -- Test if a Finder item is not a folder or application but an image file of accepted type. on fileTest(anItem) ignoring case -- to accept both "JPG" and "jpg" set oldDelimiters to AppleScript's text item delimiters set AppleScript's text item delimiters to "." -- to get file extension part of file name tell application "Finder" set aName to name of anItem if class of item anItem is document file then -- not a folder etc. if locked of anItem is false then -- to honour HFS locked attribute if set if file type of anItem is in {"JPEG", "GIFf", "jp2 ", "JPX ", "PNGf", "PNG "} then -- file types acceptable return true else if last text item of aName is in {"jpg", "gif", "jpeg", "jp2", "png"} then -- file extensions acceptable return true else return false -- file is not an image in one of these Internet formats. end if else -- file is locked return false end if else -- file is not a document file return false end if end tell set AppleScript's text item delimiters to oldDelimiters end ignoring end fileTest -- Help text on aDialog() display dialog ¬ "Pudota skriptin päälle kuvatiedostoja " & return & ¬ "joiden resurssihaaran tahdot poistaa." & return & return & ¬ "Voit myös valita kohteet Finderissa ja" & return & ¬ " ajaa skriptin Skriptivalikosta." buttons "OK" with icon note default button 1 end aDialog (* If it is more convenient, the dialog text in English: "If you want to the resource forks of some picture files, drag 'n drop them on this script application. Or select the files in the Finder and run this script from Script menu." *) |