Enregistrer une image JPEG (D7)
Personne ne songe à fouiller les méthodes de l'Xtra
JavaConvert puisque Macromedia fournit une interface à l'enregistrement
Java, sous forme de MIAW. On affiche cette fenêtre de dialogue
par Fichier/Enregistrer en Java...
Il semble bien qu'on ne puisse ici que convertir la totalité
de l'animation. Pourtant cette Xtra fournie gracieusement avec Director
cache parmi ces méthodes une fonction des plus utiles. Regardons
ça :
Dans la fenêtre message on demande à connaître
les méthodes de JavaConvert par le traditionnel put interface().
Le Crapo par coquetterie utilise ici la nouvelle notation Lingo.
put xtra "javaconvert".interface()
-- "xtra JavaConvert -- This Xtra provides java output of Director
movies
new object me
ConfigureTranslation object me, string MovieToTranslateName, integer
bScoreGoesInMediaFile, integer bAllMediaInMediaFile, integer bConvertScripts,
integer iJpegQual, string sImageCompression, integer iSingleGifPalette,
integer bListsContainIntsOnly, integer bLoopTheMovie, integer optimizationSettings
-- Sets options for translation.
GetVersion object me -- returns a version number for this Xtra
CheckMovie object me -- checks movie for errors. Returns list of
errors
TranslateMovie object me, string SourceFileName, string MediaFileName
-- Translates movie to Source and Media files. Returns list of errors
TranslateScript object me, any scriptmember, string outputFileName
-- Translate a given script, Returns string translation
ExportMedia object me, string MovieToTranslateName, any member,
string outputFileName, integer OutputAsJpeg, integer QualityPercentage,
integer castlibNum -- Translate a given media castmember (only image
hooked up), Returns 0
CastMemForLineNumber object me, integer lineNumber -- Get castmember
index whose translation output into the source file would include
the given line number
GetTranslatedMovieName object me -- Gets the name of the movie class.
This may be different than the movie name if it conflicts with some
other exported symbol"
On fond ce que l'on voit là c'est l'ensemble des méthodes
que Director met en uvre lorsque l'on manipule la MIAW "Enregistrer
en Java". Mais peut-être ne l'avez vous pas vu ! Il y a là
dedans une méthode de conversion "ExportMedia()"
Il n'entre pas dans le cadre de cet article de décrire la
mise en uvre des Xtras. Pour un commentaire détaillé
des informations retournées par la fonction interface(),
on se reportera aux anciens
articles du CrapoWeb sur les Xchoses. Par exemple sur l'Xtra
fileIO ou l'Xobjet MISC.
L'Xtra JavaConvert requiert la création d'une instance.
On baptise l'enfant à naître :"crapo".
crapo = xtra "javaConvert".new()
Pour utiliser la méthode ExportMedia() nous devons lui passer
plusieurs paramètres.
-string MovieToTranslateName
C'est le nom entre guillemets de l'animation en cours d'abord.
Ce nom ne doit pas contenir d'extension .dir ou .dxr semble-t-il.
-any member
Un acteur bitmap à convertir.
-string outputFileName
Le nom et éventuellement le chemin du fichier jpg à
créer.
-integer OutputAsJpeg
C'est semble-t-il un booléen (1 ou 0) requis par la fonction.
(?).
-integer QualityPercentage,
un entier représentant la qualité de compression
JPEG. maximum 100% mais le temps de traitement d'une image importante
en sera rallongé !
-integer castlibNum
Le numéro de la distribution en cours.
Nous voilà prêt à créer notre enregistrement
d'image. Notre animation s'appelle "essai.dir". C'est l'acteur bitmap
n° 2 que nous voulons enregistrer. Afin de laisser l'utilisateur
choisir l'emplacement nous l'interrogeons via FileXtra :
choix = FileSaveAsDialog ("", "sauvegarde.jpg", "Enregistrer une
copie dans :")
Puis dès lors que nous avons sa réponse sous forme
de chemin et de nom de fichier dans la variable "choix" :
crapo.ExportMedia("essai", member 2, choix, 1, 75, 1)
La fonction retourne VOID (plutôt que zéro, équivalent
?) si tout c'est bien passé :
put the result
-- <Void>
On détruit l'instance pour libérer la mémoire
:
crapo = 0
<
Sommaire
|