Aperçu, vrai format de fichier

springfield

Membre confirmé
18 Novembre 2015
26
0
Bonjour,

Dans un cadre professionnel, je reçois du client un lot d'images mais il se trouve que certaines n'ont pas le format de fichier qu'elles prétendent. Le seul moyen que j'ai trouvé pour le moment, c'est d'ouvrir les images dans Aperçu et de les réenregistrer. En faisant cela, le vrai format de fichier apparaît.

J'ai trouvé un script préexistant :

set this_file to choose file without invisibles
try
tell
application "Image Events"
-- start the Image Events application
launch
set
the new_format to JPEG
set the nme_ext to "jpg"
-- derive new name for the new image file
copy my derive_filename(this_file, nme_ext, "-", "") to {new_name, target_HFSpath}
-- open the image file
set this_image to open this_file
-- save in new file. The result is a file ref to the new file
set the new_image to save this_image as new_format in file target_HFSpath with icon
-- purge the open image data
close this_image
end tell
tell
application "Finder"

-- delete the original file
delete this_file
end tell
on
error error_message
display dialog error_message buttons {"Cancel"} default button 1
end try

on derive_filename(this_item, new_extension, increment_separator, target_folder)
-- a sub-routine used for deriving the name and path of a new file using the name of an existing file
-- Pass in file ref in alias format, the new name extension, an increment separator, and any target directory (in alias format)
-- Name and HFS path for new file are returned. The name is incremented if a file exists in the target location.
-- Pass a null string for the target directory to use the item's parent directory
-- Pass a null string for the new name extension to use the item's current name extension

tell application "Finder"
if target_folder is "" then
set
the target_folder to the container of this_item
end if
set
the file_name to the name of this_item
set file_extension to the name extension of this_item
if the file_extension is "" then
set
the trimmed_name to the file_name
set extension_separator to ""
else
set
the trimmed_name to text 1 thru -((length of file_extension) + 2) of the file_name
set extension_separator to "."
end if
if
the new_extension is "" then
set
target_name to file_name
set target_extension to file_extension
else
set
target_extension to new_extension
set target_name to (the trimmed_name & extension_separator & target_extension) as Unicode text
end if
if
(exists document file target_name of target_folder) then
set
the name_increment to 1
repeat
set
the new_name to (the trimmed_name & increment_separator & (name_increment as Unicode text) & extension_separator & target_extension) as Unicode text
if not (exists document file new_name of the target_folder) then
set
the target_HFSpath to ((target_folder as Unicode text) & new_name)
return {new_name, target_HFSpath}
else
set
the name_increment to the name_increment + 1
end if
end
repeat
else
set
the target_HFSpath to ((target_folder as Unicode text) & target_name)
return {target_name, target_HFSpath}
end if
end
tell
end
derive_filename

Comment puis-je lui faire traiter tout un dossier ? et aussi lui indiquer un dossier de sortie ?