J'ai un objet Flash dans un fichier SWF. Il contient une image que je dois extraire afin que je puisse l'utiliser directement pour les périphériques ne prenant pas en charge Flash.
Comment puis-je extraire l'image du fichier SWF? Quels outils devrais-je utiliser?
Cela dépend de la situation. Dans tous les cas, vous aurez besoin d’un moyen d’identifier cette image dans le fichier, autrement dit un symbole.
Cas 1. Intégrer
[Embed(source="assets/library.swf", symbol="AImage")]
[Bindable]
public var AImage:Class;
Cas 2. Runtime
(ce code est exécuté une fois que le chargeur a chargé votre fichier source swf)
loader.contentLoaderInfo.applicationDomain.getDefinition("AImage");
J'espère que ça aide
Il existe une boîte à outils open source qui fonctionne assez bien pour le poste. Sous Windows, vous devez exécuter le programme d'installation en tant qu'administrateur, sinon celui-ci meurt. Ajoutez ensuite le dossier à votre PATH (ou non) et vous pouvez extraire les jpeg. Premier:
swfextract /path/to/file.swf
qui listera tous les actifs du fichier. Dans ce cas, faites attention aux identifiants de la section JPEG. Puis pour chaque identifiant, lancez
swfextract /path/to/file.swf -i id -o name-of-my-new-file.jpg
Je suis d'accord avec l'utilisation de open source toolkit comme l'a répondu Tom.
Pour compiler les outils et les installer sur linux/mac, utilisez ces commandes comme spécifié dans le wiki :
tar -zvxf swftools-0.x.x.tar
cd swftools-0.x.x
./configure
make
make install
Voici la commande pour extraire tous les actifs:
swfextract --outputformat "extract_%06d.%s" -a 1- test.swf
Comme spécifié dans cette page wiki .
Une alternative à SWFTools (mentionné dans les réponses ci-dessus) est JPEXS FFDec , un décompilateur et un éditeur SWF. Son principal avantage est que vous pouvez prévisualiser les images avant de les extraire. Il est également légèrement plus facile à utiliser, étant un outil graphique.
Une fois que vous avez chargé un fichier dans FFDec, cliquez sur la section "images" de l’arborescence. Pour extraire une image, cliquez dessus avec le bouton droit de la souris et choisissez "Exporter la sélection", puis "OK". Vous pouvez sélectionner plusieurs éléments (dans la vue de la galerie et dans l'arborescence latérale) et les extraire en même temps. Pour extraire toutes les images, cliquez avec le bouton droit de la souris sur "images" dans l'arborescence latérale et utilisez "Exporter la sélection". Les résultats seront dans un dossier "images" nouvellement créé.