Extraindo imagens de arquivos Flash (.swf) no Ubuntu

Nestes dias eu precisei de uma ferramenta para extrair imagens de uns arquivos Flash (.swf). Procurei bastante até que encontrei o site SWFTOOLS. Dentre as ferramentas apresentadas pelo site temos a SWFExtract que serviu justamente aos meus propósitos.

Para instalar (lembrar que a minha distribuição é o Ubuntu, se esta não for a sua veja se nos repositórios existe o pacote swftools, caso não exista, basta ir no site do SWFTOOLS e lá fazer o download) basta digitar num terminal:

sudo apt-get install swftools

Assim, estaremos instalando não só o SWFExtract como as outras ferramentas disponíveis. Abaixo um resumo delas:

  • PDF2SWF – Um conversor de PDF para SWF;
  • SWFCombine – Uma ferramenta para SWFs em outros SWFs;
  • SWFStrings – Faz uma procura por texto em arquivos SWF;
  • SWFDump – Imprime num terminal várias informações sobre arquivos SWF;
  • JPEG2SWF – Transforma uma ou mais imagens JPEG em slides SWF;
  • PNG2SWF – O mesmo do JPEG2SWF só que com arquivos PNG;
  • GIF2SWF – Converte GIFs em SWFs. Também trabalha com gifs animadas;
  • WAV2SWF – Converte arquivos WAV em SWF;
  • Font2SWF – Converte arquivos de fonte (TTF, Type1) em SWF;
  • SWFBBox – Reajuste de arquivos SWF;
  • SWFC – Criação de arquivos SWF a partir de arquivos de script;
  • SWFExtract – Extração de clipes, imagens, sons etc. de arquivos SWF;
  • RFXSWF Library – Uma biblioteca para geração de arquivos SWF.

Agora vamos demonstrar um uso do SWFExtract. Num terminal, vá até o diretório onde se encontra o arquivos .swf que você deseja abrir, por exemplo:

cd /home/usuario/swf

Depois digite:

swfextract -v arquivo.swf

Onde arquivo.swf será o nome do arquivo que você tem 🙂 . Este comando mostrará o conteúdo do arquivo .swf, que, no meu caso está mostrado abaixo:

Objects in file arquivo.swf:
[-i] 4 Shapes: ID(s) 5, 19, 20, 23
[-i] 9 MovieClips: ID(s) 8, 9, 11-13, 15, 17, 21, 22
[-j] 4 JPEGs: ID(s) 1-4
[-f] 1 Frame: ID(s) 0

Observe que há uma linha na saída do comando que me diz que existem 4 arquivos JPEG com as IDs de 1 a 4. Assim para retirar cada uma delas do arquivo basta executar os camando abaixo:

swfextract -j 1 arquivo.swf -o imagem1.jpg
swfextract -j 2 arquivo.swf -o imagem2.jpg
swfextract -j 3 arquivo.swf -o imagem3.jpg
swfextract -j 4 arquivo.swf -o imagem4.jpg

A opção -j me diz que são arquivos JPEG que é a mesma que está descrita na saída da tela do comando swfextract -v. Caso fossem imagens PNG seria a opção -p. Utilizei também a opção -o para dar um nome para o arquivo extraído, pois, por padrão, o nome de saída é sempre output.jpg.

No site da ferramenta existem mais explicações bem como até alguns exemplos. Ah, e antes que me esqueça, existe também uma versão para sistemas Windows 🙂 .

8.04

Sobre Fábio Medeiros

Meu nome é Fábio Medeiros. Cearense de nascença e com muito orgulho (daí o nome do blog, uma referência à minha terra). Sou formado em Tecnologia em Telemática, pelo CEFET-CE. Escrevi alguns artigos sobre programação JavaME e dispositivos portáteis (PDA) para a revista WebMobile.
Esse post foi publicado em Ubuntu e marcado , . Guardar link permanente.

2 respostas para Extraindo imagens de arquivos Flash (.swf) no Ubuntu

  1. Vinicius disse:

    Ótima dica! Me ajudou bastante!

  2. Anônimmo disse:

    #!/bin/bash
    find_ext=”.swf”
    out_ext=”.jpg”

    [ “$1” == “” ] && echo “Add type arguments from swfextract: -j -p -f -F -m -i” && exit 1

    for arg in $@; do
    for file in `find . -name “*$find_ext”`; do
    ids=”`swfextract $file | grep “\[$arg\]” | sed ‘s#^.*ID(s) ##g’ | sed ‘s#, # #g’`”
    for id in $ids; do
    swfextract “$file” $arg $id -o “${file}_${id}${out_ext}”
    done
    done
    done

Deixe um comentário