# applescript et imagewell



## ange (1 Avril 2006)

Bonjour,

j'aime bien l'ombrage que fait facilement ImageWell (freeware leger d'imagerie), et je voulais scripter cette commande de façon à l'appliquer à plusieurs images : glisser plusieurs images sur le script et les images seraient transformées avec l'ombrage en plus.

Or le script suivant:


> on open elementsdeposes
> repeat with fichier in elementsdeposes
> tell application "ImageWell"
> open fichier
> ...



me retourne lors de al sauvegarde : 


> can make alias "monfichier.png" of application "ImageWell" into type reference.



Et je ne comprends pas ! Pouvez vous m'aider ?

Merci,

Ange


----------



## Didier Guillion (2 Avril 2006)

ange a dit:
			
		

> Bonjour,
> 
> j'aime bien l'ombrage que fait facilement ImageWell (freeware leger d'imagerie), et je voulais scripter cette commande de façon à l'appliquer à plusieurs images : glisser plusieurs images sur le script et les images seraient transformées avec l'ombrage en plus.
> 
> ...



Je ne connais pas ImageWell mais a priori, tu aurait un probleme de parametre a la commande Save.
Que dit le dictionnaire d'ImageWell ?

Cordialement


----------



## ange (2 Avril 2006)

Didier Guillion a dit:
			
		

> la commande Save.
> Que dit le dictionnaire d'ImageWell ?


Et bien il intègre la "standard suite" avec save, open, close...
sinon dans ses propres commandes, il a send ou export, mais je pense que save devait marcher. Ceci dit dans l'utilisation manuelle de Imagewell, il n'y a pas le menu "Enregistrer" (on glisse l'image sur le rep voulu), seulement un "enregistrer sous" classique. Serait-ce la raison ?

Merci de l'aide !

PS : Il y a un labo sur MacGe sur Imagewell...  
http://www.macg.co/mgnews/categories/labo/labo_115130_1.shtml



Ange.


----------



## Didier Guillion (2 Avril 2006)

Dans le dico tu as :

open?v : Open an object.
open alias : The file(s) to be opened.

et

save?v : Save an object.
save reference : the object for the command
[as Unicode text] : The file type in which to save the data.
[in alias] : The file in which to save the object.

Donc, il me semble, ce n'est pas "save filename" mais
"save object in filename"

Je vais plus loin ?

Cordialement


----------



## ange (2 Avril 2006)

Merci de la remarque.
Je modifie, je teste et je te tiens au courant.

Cordialement


----------



## Didier Guillion (2 Avril 2006)

ange a dit:
			
		

> Merci de la remarque.
> Je modifie, je teste et je te tiens au courant.
> 
> Cordialement



Bon, j'ai essayé de mon coté, chou blanc.
J'ai du mal a comprendre ce qu'imagewell entends par "object".


Cordialement


----------



## ange (2 Avril 2006)

Ben, j'ai essayé cela :

save document in fichier

je n'ai plus de messages d'erreur, mais le résultat n'est pas sauvegardé ! (bien que visuellement dans l'interface je vois bien le travail se faire)

Et si je mets : save fichier in fichier  -- j'obtiens toujours le même message (et je pense que cela est foireux comme commande)

enfin je ne sais pas quoi alors mettre d'autre ? (document ne marche pas -- je pensais que cela pouvait être le mot clef pour le document courant). Des idées ? Des conseils ?

Bref, je ne connais pas l'applescript et cela se voit. Moi qui croyais que cela était intuitif ! 

PS : et puis une fois que j'arriverai à sauvegarder, j'aimerai bien aussi que Imagewell quitte (et mes premiers essais sont aussi infructueux... )


----------



## Didier Guillion (2 Avril 2006)

ange a dit:
			
		

> Ben, j'ai essayé cela :
> 
> save document in fichier
> 
> ...



J'ai fait le meme cheminement que toi sans plus de succes.

J'aurait ecrit de maniere "naturelle":

on open elementsdeposes
	repeat with fichier in elementsdeposes
		tell application "ImageWell"
			set object to open fichier
			set dropshadow to 1
			save object in fichier
		end tell
	end repeat
end open

Mais ca marche pô.

Je continue a chercher.

Cordialement


----------



## ceslinstinct (2 Avril 2006)

Didier Guillion a dit:
			
		

> J'ai fait le meme cheminement que toi sans plus de succes.
> 
> J'aurait ecrit de maniere "naturelle":
> 
> ...



Bonjour

Je regarde imagewell et dans sa barre des menus il n'y à que Enregistrer Sous...
Keystroke "s" ne peut donc pas être utilisé si plusieurs fichiers.

Donc il demande le chemin ou doit être enregistré le fichier.
Si à la sauvegarde du fichier on lui indique le chemin je pense que cela devrais marcher.

Je dit sans doute une bétise, mais il faut étudier toutes les possibilitées.

@+


----------



## ange (4 Avril 2006)

ceslinstinct a dit:
			
		

> Je regarde imagewell et dans sa barre des menus il n'y à que Enregistrer Sous...
> Keystroke "s" ne peut donc pas être utilisé si plusieurs fichiers.


je ne comprends pas !?!



			
				ceslinstinct a dit:
			
		

> Donc il demande le chemin ou doit être enregistré le fichier.
> Si à la sauvegarde du fichier on lui indique le chemin je pense que cela devrais marcher.



je ne comprends pas !?!

euh, des explications ?


----------



## Didier Guillion (5 Avril 2006)

ange a dit:
			
		

> je ne comprends pas !?!
> 
> 
> 
> ...




Je pense que Cellinstin a cherché une solution consistant a piloter l'appli via des pseudos touche clavier.

Cordialement


----------



## ceslinstinct (5 Avril 2006)

Didier Guillion a dit:
			
		

> Je pense que Cellinstin a cherché une solution consistant a piloter l'appli via des pseudos touche clavier.
> 
> Cordialement


 Bonjour

 J'ai repris le script mot à mot.

 J'ai étudié ligne à ligne et dans le script je n'ai rien trouvé qui puisse me montrer que l'image est prète à être sauvé.
 Donc si rien pas de sauvegarde.

 Alors je place l'image dans le presse-papiers (c'est la seule façon que j'ai trouvé pour faire un test de bon fonctionnement)
Si l'on copie le presse-papiers dans un logiciel de dessin on à bien l'image à sauvegarder.

 Maintenant je cherche comment sauvegarder l'image en fichier.

 Si il y avait une commande dans ImageWell Enregistrer (avec un nom générique numéroté) pas de problème.
 Ce qui à l'air d'être recherché c'est l'enregistrement de plusieurs images à la file sans aucune demande.

 Mes façon de rechercher une solution (débile mais cela peut donner des idées aux spécialiste).
J'utilise des copies d'écran en PDF pour mes tests je suis pour l'instant avec Panther 10.3.9


```
[color=#0000FF][b]on[/b][/color] [color=#0000FF]open[/color] [color=#408000]elementsdeposes[/color]
	[color=#0000FF][b]set[/b][/color] [color=#408000]chemin[/color] [color=#0000FF][b]to[/b][/color] "Panther:Users:admin:Desktop:"
	[color=#0000FF][b]repeat[/b][/color] [color=#0000FF][b]with[/b][/color] [color=#408000]fichier[/color] [color=#0000FF][b]in[/b][/color] [color=#408000]elementsdeposes[/color]
		[color=#0000FF][b]tell[/b][/color] [color=#0000FF]application[/color] "ImageWell"
			[color=#0000FF]activate[/color]
			[color=#0000FF]open[/color] [color=#408000]fichier[/color]
			[color=#0000FF][b]set[/b][/color] [color=#0000FF]dropshadow[/color] [color=#0000FF][b]to[/b][/color] 1
		[color=#0000FF][b]end[/b][/color] [color=#0000FF][b]tell[/b][/color]
		[color=#0000FF][b]tell[/b][/color] [color=#0000FF]application[/color] "Image Events" --[color=#4C4D4D][i] Pour éviter d'avoir une image en mode texte[/i][/color]
			--[color=#4C4D4D][i] Sauvegarde dans le presse-papiers[/i][/color]
			[color=#0000FF][b]tell[/b][/color] [color=#0000FF]application[/color] "System Events" [color=#0000FF][b]to[/b][/color] [color=#0000FF]keystroke[/color] "C" [color=#0000FF]using[/color] {[color=#0000FF]shift down[/color], [color=#0000FF]command down[/color]}
			--[color=#4C4D4D][i] Ecriture dans la variable du fichier à sauvegarder[/i][/color]
			[color=#0000FF][b]set[/b][/color] [color=#408000]x[/color] [color=#0000FF][b]to[/b][/color] [color=#0000FF]the clipboard[/color]
			
			--[color=#4C4D4D][i] J'ai bien l'image dans le presse-papiers, mais aucun résultat ni erreur de signalé.[/i][/color]
			--[color=#4C4D4D][i] Cette ligne doit avoir des erreurs, elle ne fait pas son travail[/i][/color]
			[color=#0000FF]save[/color] [color=#0000FF]file[/color] [color=#408000]x[/color] [color=#0000FF]in[/color] [color=#408000]chemin[/color] & [color=#408000]fichier[/color] & ".PDF" [color=#0000FF]as[/color] [color=#0000FF]PDF[/color]
		[color=#0000FF][b]end[/b][/color] [color=#0000FF][b]tell[/b][/color]
	[color=#0000FF][b]end[/b][/color] [color=#0000FF][b]repeat[/b][/color]
[color=#0000FF][b]end[/b][/color] [color=#0000FF]open[/color]
```

J'ai posé une question hier pour savoir comment enregistrer le presse-papiers.

Je fait les recherche pour assayer de comprendre AppleScript, je ne suis pas un spécialiste.

J'utilise keystroke dans ce script, mais en réalidé je préfére key code qui est plus complet.

@+


----------



## ceslinstinct (5 Avril 2006)

Bonjour

Sous Panther 10.3.9 dans le presse-papiers l'image est la même que dans ImageWell.

Je vien de tester sous Tiger 10.4.6 et l'image est dans un gros cadre noir, donc inutilisable.

@+


----------



## ange (10 Avril 2006)

Comme nous avons l'air bloqué :hein: ,
je viens d'écrire au support de Imagewell pour qu'ils nous aident !

Des infos  ici dès que j'en ai !


----------



## ceslinstinct (23 Avril 2006)

ange a dit:
			
		

> Comme nous avons l'air bloqué :hein: ,
> je viens d'écrire au support de Imagewell pour qu'ils nous aident !
> 
> Des infos  ici dès que j'en ai !



Bonjour

Je vien de faire un test sous 10.3.9 et ça marche.

La je n'ai pas 10.4.6 sur ce poste donc à tester.

Je passe par le presse-papiers, et le test est fait qu'avec une image.
Donc avec une routine repeat il faut ajouter un compteur pour numéroter les images.

```
[color=#0000FF][b]on[/b][/color] [color=#0000FF]open[/color] [color=#408000]elementsdeposes[/color]
	[color=#0000FF][b]tell[/b][/color] [color=#0000FF]application[/color] "ImageWell"
		[color=#0000FF]activate[/color]
		[color=#0000FF]open[/color] [color=#408000]elementsdeposes[/color]
		[color=#0000FF][b]set[/b][/color] [color=#0000FF]dropshadow[/color] [color=#0000FF][b]to[/b][/color] 1
	[color=#0000FF][b]end[/b][/color] [color=#0000FF][b]tell[/b][/color]
	
	[color=#0000FF][b]tell[/b][/color] [color=#0000FF]application[/color] "System Events" [color=#0000FF][b]to[/b][/color] [color=#0000FF]keystroke[/color] "C" [color=#0000FF]using[/color] {[color=#0000FF]shift down[/color], [color=#0000FF]command down[/color]}
	
	--[color=#4C4D4D][i] Ma question:[/i][/color]
	--[color=#4C4D4D][i] http://forums.macg.co/vbulletin/showthread.php?p=3772808#post3772808[/i][/color]
	
	[color=#0000FF][b]try[/b][/color]
		[color=#0000FF][b]set[/b][/color] [color=#408000]theData[/color] [color=#0000FF][b]to[/b][/color] [color=#0000FF]the clipboard[/color] [color=#0000FF]as[/color] [color=#0000FF]TIFF picture[/color]
	[color=#0000FF][b]on[/b][/color] [color=#0000FF][b]error[/b][/color]
		[color=#0000FF]display dialog[/color] "Erreur"
	[color=#0000FF][b]end[/b][/color] [color=#0000FF][b]try[/b][/color]
	[color=#0000FF][b]set[/b][/color] [color=#408000]theFile[/color] [color=#0000FF][b]to[/b][/color] ([color=#0000FF]path to[/color] [color=#0000FF]desktop[/color] [color=#0000FF]as[/color] [color=#0000FF]string[/color]) & "image.tiff"
	[color=#0000FF][b]set[/b][/color] [color=#408000]theFileRef[/color] [color=#0000FF][b]to[/b][/color] [color=#0000FF]open for access[/color] [color=#408000]theFile[/color] [color=#0000FF][b]with[/b][/color] [color=#0000FF]write permission[/color]
	[color=#0000FF][b]try[/b][/color]
		[color=#0000FF]write[/color] [color=#408000]theData[/color] [color=#0000FF]starting at[/color] 0 [color=#0000FF]to[/color] [color=#408000]theFileRef[/color]
	[color=#0000FF][b]end[/b][/color] [color=#0000FF][b]try[/b][/color]
	[color=#0000FF]close access[/color] [color=#408000]theFileRef[/color]
	[color=#0000FF][b]tell[/b][/color] [color=#0000FF]application[/color] "ImageWell" [color=#0000FF][b]to[/b][/color] [color=#0000FF]quit[/color]
[color=#0000FF][b]end[/b][/color] [color=#0000FF]open[/color]
```
Les images ne paraissent sur le bureau que quand on quitte ImageWell.

Ce n'est pas un code parfait, c'est juste pour montrer que c'est possible.

@+


----------



## Anonyme (23 Avril 2006)

```
on open theList
	repeat with x in theList
		tell application "ImageWell"
			activate
			open x
			set theFileName to filename
			set dropshadow to 1
			copy image
		end tell
		
		set theData to the clipboard as TIFF picture
		set theFile to (path to desktop as string) & theFileName & ".tiff"
		set theFileRef to open for access theFile with write permission
		write theData starting at 0 to theFileRef
		close access theFileRef
		
		tell application "Finder"
			set file type of (theFile as alias) to "TIFF"
			set creator type of (theFile as alias) to "prvw"
		end tell
	end repeat
	tell application "ImageWell" to quit
end open
```
Le script est également disponible ici (OS X 10.3 ou supérieur).


----------



## ange (23 Avril 2006)

merci de ces réponses.

De son côté, l'équipe d'Imagewell m'a dit qu'ils chercheraient et me réponderaient, mais je n'ai aucune nouvelle !

Je vais essayer avec vos scripts et vous tiens au courant. Merci,

ange


----------



## ceslinstinct (24 Avril 2006)

ange a dit:
			
		

> merci de ces réponses.
> 
> De son côté, l'équipe d'Imagewell m'a dit qu'ils chercheraient et me réponderaient, mais je n'ai aucune nouvelle !
> 
> ...



Bonjour

Plus l'image est importante moins il y à de cadre.
Avec une image de 2590 x 1950 il n'y à pas de cadre et le script ne fonctionne pas.

J'ai testé sur des petites images et la tout fonctionne très bien.

Donc faire un test avec une image, si dans ImageWell on ne voit pas s'afficher le cadre donc on risque de ne pas avoir le résultat recherché.

Si l'on diminue la taille dans ImageWell de l'image en 2590 x 1950 en un format plus petit alors la ça fonctionne.

@+


----------



## ceslinstinct (24 Avril 2006)

ange a dit:
			
		

> merci de ces réponses.



Bonjour

Ce qu'il faudrait savoir c'est le format de l'image encadré et ombré que tu recherche.
Je présume que c'est pas le format icône que tu recherche mais des images avec un cadre ombré.

Avec ImageWell plus le format est grand moins il y a de cadre ombré, donc il faut rechercher le format maxi avec le bon cadre ombré.
Puis avec le script reformater les images qui dépasse la taille maxi avant de les encadrer.

Du moins c'est ce que je pense, sauf erreur de ma part.

@+


----------



## ceslinstinct (24 Avril 2006)

double post


----------



## ange (25 Avril 2006)

Merci,

je viens d'essayer le script et il marche exactement comme je veux pour mon utilisation (petites images).
Je n'ai plus qu'à le customiser un peu pour mes besoins (format de fichier, emplacement) et  c'est nickel.

Encore merci.

Ange


----------



## FredoMkb (2 Mai 2006)

Bonjour à tous 

Fil de discussion très intéressant...

J'ai eu aussi des soucis pour scripter ImageWell, mais à force de m'acharner dessus, j'ai fini par trouver comment il fonctionnait, enfin, j'ai trouvé une piste du moins, puisque je vois sur ce topic d'autres solutions que je n'avais pas envisagé (très bonne idée de copier l'image et générer un fichier avec )...

Bref, j'avais demandé de l'aide, à l'époque, sur le forum de support de l'application ImageWell (Rotate Images With AppleScript"), mais la réponse que j'ai eu ne m'a pas vraiment aidé, enfin, après avoir trouvé une piste, j'ai proposé un script, un peu compliqué à vrai dire, mais aucune réaction depuis...

Voici donc, après reprise de cet ancien script, histoire de le simplifier et compléter un peu, un script qui permet de mémoriser les paramètres actifs de l'application, afin de les appliquer à tout moment à n'importe quel liste d'images compatibles.

Ce nouveau script ne mémorise qu'une seule configuration, mais en dupliquant le script, il est possible de conserver et d'utiliser plusieurs configurations différentes.

Les configuration mémorisables concernent les paramètres des onglets "Image", "Forme" et "Filigrane", les autres modifications, comme la rotation de l'image par exemple, ne sont pas mémorisables. Dans l'onglet "Image", seul le pourcentage de réduction est mémorisé, les valeurs de "Largeur" et "Taille" sont ignorées.

Le script fonctionne par double-clic, en choisissant un dossier contenant des images à traiter (attention, il ne fait pas le tri entre les documents images et les autres à l'intérieur du dossier source), ou directement par glisser/déposer des images sur l'icône du script... puis, pour les curieux, le script est éditable ! 

Le voici : *IWAutoConv* (35 Ko)


----------



## ange (2 Mai 2006)

Super ce script, merci !

(juste la mémorisation de paramètre pas forcement intuitive, mais quand on a compris, c'est parfait, en tout cas dans mon cas où je ne veux qu'un effet d'ombrage)

Ange


----------



## FredoMkb (3 Mai 2006)

ange a dit:
			
		

> (juste la mémorisation de paramètre pas forcement intuitive, mais quand on a compris, c'est parfait, en tout cas dans mon cas où je ne veux qu'un effet d'ombrage)


Oui, c'est vrai que la méthode utilisée n'est pas vraiment évidente à la première utilisation. Disons que je l'ai choisie pour ne pas trop alourdir le code avec une gestion plus poussée des configurations.

Alors, pour essayer d'être un peu plus clair, voici un petit pas à pas :

1. Lancer ImageWell (IW) et le configurer à sa guise (attention, les rotations et fonctions d'édition ne sont pas prises en compte par le script).

2. Lancer le script, soit par double-clic, ce qui produira l'apparition du dialogue de sélection du dossier source (celui contenant les images à traiter), soit par glisser/déposer directement des fichiers images sur l'icône du script (si on dépose un dossier, le script initialisera toutes les infos en mémoire à leur valeur par défaut).

3. Le script affichera un nouveau dialogue de sélection de dossier, cette fois pour désigner le dossier de destination pour les images traitées. Pour éviter d'écraser des fichiers déjà existants, il vaut mieux choisir un dossier différent du dossier source, ou, mieux encore, créer un dossier vierge à partir du dialogue de sélection. Le dossier choisi est mémorisé, puis proposé par défaut lors des traitements suivants.

4. Ensuite, s'il s'agit du tout premier lancement, le script va mémoriser automatiquement tous les paramètres de la configuration active de l'application ImageWell, dans le cas contraire, le script va afficher un petit dialogue permettant de choisir d'utiliser la configuration déjà en mémoire dans le script ou celle active dans IW. Si on choisi la configuration active, le script remplacera la configuration en mémoire par la nouvelle. Il n'y a donc qu'une seule configuration en mémoire dans chaque script. Pour mémoriser différentes configurations, il faut donc dupliquer le fichier script en autant de doublons que des configurations à mémoriser.

5. Le script lance alors le traitement choisi sur chaque fichier image. Les images traitées sont automatiquemnt crées (exportées) dans le dossier temporaire du système (je n'ai pas trouvé d'autre solution, les arguments proposés dans le dictionnaire AppleScript de l'application ne fonctionnent malheureusement pas pour choisir directement la bonne destination). Le code AppleScript concernant le traitement dans IW ressemble un peu à ceci :



> -- Fonction de travail avec l'application "ImageWell"
> on fonctionImageWell(leFichierOriginal)
> tell application "ImageWell"
> -- Ouverture du fichier image original
> ...



6. Pour finir, les noms des nouveaux fichiers images récupérés sont utilisés pour déplacer le fichiers correspondants dans le dossier de destination, puis, enfin, les fichiers sont renommés afin qu'ils retrouvent leur nom original, mais avec l'extension correspondante au format de fichier choisi.

7. Enfin, un dialogue nous averti de la fin des opérations, indiquant le nombre de fichiers réellement traités sur le nombre de documents originaux, et le dossier de destination est affiché sur le Finder.

Voici une nouvelle version avec quelques petites retouches :  IWAutoConv (35 Ko)

Voilô... j'espère que ce petit pas à pas est plus clair sur l'utilisation du script.


----------



## ange (5 Mai 2006)

Merci, parfait, adopté !

Remarque : puisque les images sont déjà sur un site, pourquoi ne pas mettre directement ce post également en ligne sur ce site ?  


Bonne journée,

Ange.


----------

