Voici une fonction qui permet de capturer la scène (stage) de Director avec tout ce qui s’y trouve.
Un acteur est créé à la volée et une boîte de dialogue apparaît pour nous permettre de sauvegarder l’image au format JPEG.

Attention : ce script nécessite 2 XTras pour bien fonctionner :

  1. FIleIO XTra (fourni avec Director)
  2. SharpExport XTra

Le script

Voici la fonction avec mes commentaires.

on capture
imageScene = (the stage).image
nouveauBitmap = new(#bitmap) -- on crée un bitmap vide
nouveauBitmap.name = "capture" -- on lui donne un nom
member("capture").image = imageScene -- on lui affecte l'image de la scène

fichier = new (xtra "fileIO") -- on crée un objet fileIO
cheminExport = displaySave( fichier, "Enregistrer sous...", ".jpg")
-- l'utilisateur choisit le chemin et un nom de fichier

if cheminExport = "" then -- l'utilisateur a annulé
exit
fichier = 0 -- on libère la mémoire
end if

objetSharpExport = new (xtra "SharpExport") -- un objet SharpExport
compression = 100 -- qualité max pour les JPEG
erreur = objetSharpExport.exportJPG(member "capture", cheminExport, compression)

-- "des erreurs ?"
if erreur <> 0 then -- une erreur : on affiche une alerte
alert("une erreur est survenue inopinément...")
else -- tout s'est bien passé, on efface l'acteur de la distribution
erase member("capture")
end if

objetSharpExport = VOID -- on libère la mémoire
end

 

Voilà, j’espère que les commentaires suffiront.

Pour faire fonctionner ce script, il faut invoquer la fonction capture sur un évènement, par exemple sur un bouton :

on mouseUp me
capture
end

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.