Extraire le profil icc de plusieurs fichiers à la fois !

Tangi

Membre expert
Club iGen
12 Décembre 2003
1 536
134
43
Paris
Bonjour,

Existe-t-il un moyen d'extraire le profil icc de plusieurs fichiers à la fois ?

Il existe un script très utile qui extrait le profil icc des fichiers jpeg, il s'agit de "RemoveProfileFromImage.app".

Toutefois, il est impossible d'extraire le profil icc de plusieurs fichiers à la fois avec ce script ; ce qui est très pénible.

Lorsqu'on lance le script, on choisit le fichier duquel on doit extraire le profil icc, mais impossible de sélectionner plusieurs fichiers. Il faut systématiquement répéter l'opération et lorsqu'on a 400 fichiers à traiter c'est pénible.

Une solution ?

Avec Automator ?

Avec un autre logiciel ?

Merci par avance et bonne après-midi !

P.S. Je suis sous Tiger.
 
Et bien, le moins que l'on puisse dire c'est que ça ne passionne pas les foules...

J'ai de plus en plus de mal à obtenir des réponses sur Macgénération...

Mes questions sont-elles de plus en plus complexes ?

Y-a-t-il de moins en moins de monde sur les forums ??????

:confused::confused::confused::confused::confused::confused:
 
Bonsoir

Ton premier post m'était passé inaperçu. Mais ça m'intéresse.

De quel script "RemoveProfileFromImage.app" parles-tu ? Où l'as-tu trouvé ?

Si c'est une application AppleScript éditable, je pourrais éventuellement la modifier...
 
Bonsoir

Ton premier post m'était passé inaperçu. Mais ça m'intéresse.

De quel script "RemoveProfileFromImage.app" parles-tu ? Où l'as-tu trouvé ?

Si c'est une application AppleScript éditable, je pourrais éventuellement la modifier...
Bonsoir,

C'est un script que l'on trouve dans : Macintosh HD --> Bibliothèque --> Scripts --> ColorSync --> Remove profile from image

Si tu peux faire en sorte que l'on traite plusieurs fichiers simultanément sans avoir besoin de relancer systématiquement le script pour chaque fichier ce serait super cool...
 
Désolé, mais je viens d'ouvrir le source du script, et il apparaît clairement que ce dernier est tout-à-fait capable de faire le travail sur une liste de fichiers, soit en les sélectionnant à l'ouverture de l'application ("on run"), soit en glissant et en lâchant une liste de fichiers sélectionnés sur l'icône de l'application ("on open draggeditems").

Cela fonctionne d'ailleurs non seulement en sélectionnant les fichiers, mais aussi en sélectionnant les dossiers qui les contiennent.

Il est donc tout-à-fait possible de traiter les 400 images en faisant un minimum de manipulations.

Voici le script:
Bloc de code:
[COLOR="Blue"][COLOR="SlateGray"](*
Remove profile from image
©2002 Apple Computer, Inc.

Script will  remove any profiles embedded into the images.
*)[/COLOR]


on run
	display dialog "Remove embedded profile from an image."
	set somefile to choose file with prompt "Choose an image"
	open somefile
end run


on open draggeditems
	tell application "ColorSyncScripting" to launch
	
	display dialog "Remove embedded profile from images?"
	
	set sourcefiles to filelistFromSelection(draggeditems)
	[B][COLOR="DarkRed"]repeat with thisFile in sourcefiles[/COLOR][/B]
		tell application "Finder" to reveal item thisFile
		set thisFile to thisFile as alias
		
		try
			tell application "ColorSyncScripting" to unembed thisFile
		on error errmsg
			activate
			display dialog errmsg
		end try
		
	end repeat
	
	tell application "ColorSyncScripting" to set quit delay to 5
end open


[COLOR="SlateGray"]--returns dragged files OR files at first level of one dragged folder[/COLOR]
on filelistFromSelection(theselection)
	set hasfolder to false
	tell application "Finder"
		repeat with thisItem in (theselection as list)
			if (class of item thisItem is folder) or (class of item thisItem is disk) then
				set hasfolder to true
			end if
		end repeat
	end tell
	if ((count item of (theselection as list)) > 1) and hasfolder then
		display dialog "Drag multiple files or a single folder." buttons {"OK"} default button 1
		return ""
	end if
	tell application "Finder"
		if hasfolder then
			set filelist to (every item of folder (item 1 of (theselection as list))) as alias list
		else
			set filelist to (theselection as list)
		end if
	end tell
	return filelist
end filelistFromSelection[/COLOR]
J'ai mis en rouge la commande de répétition qui permet de traiter un à un chacun des fichiers de la liste.