Flaファイル内の画像を取り出す方法3通り

(1)コピー&ペースト

 ・透過していない画像
 ・面積の小さいもの、または画質が多少劣化しても構わない場合
以上のような画像であれば、直接photoshop等の画像編集ツールにコピペできます。
その際、Flashの[編集]→[環境設定]→[クリップボード]を以下の設定にしてください。
 ・色深度…32ビットカラー(アルファチャンネル)
 ・解像度…72dpi
 ・サイズ制限…5000KB
画像編集ソフトの標準が72dpiであることが多いため、解像度が72dpi以外のものに設定されているとコピー&貼り付け前後で画像の縦横サイズ(px)が変わることがあります。標準では「画面サイズに合わせる」になっているので注意してください(windowsの標準は96dpiのためズレが生じます)。
画像が透過を含む場合は透過部分が黒く表示されてしまいますので、次の(2)(3)のいずれかの方法を使います。

(2)swfから画像を抽出する

 ・8ビットカラーの透過を含むPNG画像、透過しているGIF画像
 ・JPEG画像
以上のような画像は、一度swfにパブリッシュしてからHugFlashのようなswfから画像を抽出できるツールを使用するとファイルをまとめて取り出すことができます。
Flash上でJPEG画像の圧縮を使用していると、圧縮後の劣化した画像が取り出されます。
圧縮を使用しているかどうかは、[ライブラリ]パネルからプロパティを選択して確認できます。PNGやGIFの場合は[圧縮:]で[ロスレス]を選択、JPEG画像の場合は「読み込んだJPEGデータを使用する」にチェックを入れてください。
また、半透明を含む24ビットPNG画像を取り出した際には半透明部分の色調が黒色ががって見える場合があります。
その際は(3)の方法で画像を取り出してください。

(3)Flashの書き出しを使用する

・24ビットの半透明を含むPNG画像
・各種画像やFlash上のパスを画質を劣化させず正確に抽出したい
以上のような場合はFlashの書き出しを使用します。
1.新規作成したFlashのステージ上に取り出したい画像を配置します。
2.[ファイル]→[書き出し]→[イメージの書き出し]を選択します。
3.ダイアログで保存先とファイル名を指定し、種類をpngにして保存します。
4.次のダイアログで[解像度:72dpi]、[範囲:イメージサイズ]、[カラー:24ビット(アルファチャンネル)]を選択し、[OK]を押します。

携帯Flash向け:PNG画像の最適化バッチファイル

主にモバイルFlash向けに、PNG画像を減色→最適化するバッチファイルです。
アルファチャネル付きの24ビットPNG画像も減色、最適化できます。

使い方

  1. pngquantPNGrewriteOptiPNGPNGOUTをそれぞれダウンロードし、解凍します。
  2. 以下のコードをメモ帳にコピー&貼り付けします。
  3. SETLOCAL
    ::------------------------------------------------ここから設定項目
    ::何色きざみで減色を行うか、イコール(=)の右側に数値を半角で入力してください。
    SET /A color=16
    ::軽量化処理に使用する各ソフトのファイルパス(それぞれのソフトを解凍した場所)を、イコール(=)の右側に入力してください。
    SET pngquant=pngquant-0.95-win32\pngquant.exe
    SET pngrewrite=pngrewrite-1.3.0\pngrewrite.exe
    SET optipng=optipng-0.6.1-exe\optipng.exe
    SET pngout=pngout.exe
    ::------------------------------------------------ここまで設定項目
    md result\fullcolor
    copy "*.png" result\fullcolor\
    %optipng% result\fullcolor\*.png -o7
    for %%V in (result\fullcolor\*.png) do %pngout% /y %%V %%V
    for /L %%M in (%color%,%color%,256) do md result\%%Mcolor
    :LOOP
    SET /A clr+=%color%
    IF %clr% GTR 256 GOTO END
    %pngquant% %clr% *.png
    move "*-fs8.png" result\%clr%color\
    for %%R in (result\%clr%color\*.png) do %pngrewrite% %%R %%R
    %optipng% result\%clr%color\*.png -o7
    for %%V in (result\%clr%color\*.png) do %pngout% /y %%V %%V
    GOTO LOOP
    :END
    ENDLOCAL

  4. 説明にしたがい、設定項目を記入したらお好きなファイル名で保存します。
  5. 保存したテキストファイルの拡張子を「.txt」から「.bat」に変更します。
  6. このバッチファイル(.bat)と同じフォルダに最適化したいPNG画像をコピーします。
    圧縮したいPNG画像が複数枚ある場合は、すべてコピーしてください。
    (同じフォルダにあるすべてのPNGファイルが最適化されます)
  7. バッチファイルを実行すると、最適化処理が始まります。
    終了までしばらくお待ちください。
  8. バッチファイルのあるフォルダに、「result」という名前のフォルダができます。
    このフォルダの中に、減色&最適化済みのPNGファイルが色数別に保存されます。

利用上の注意

    変換後のPNGファイルはアルファチャンネル付きインデックスカラーPNGです。
    photoshop等の画像編集ツールで正常に開けない場合がございますので、必ずバックアップをとってください。

高圧縮になった分、展開にHeapメモリを消費しないかどうかが若干心配になり
こちらの記事のサンプルデータで比較してみたのですが、全く変わりませんでした。
どの圧縮方式を利用しても変わらないのかな。

このバッチファイルは各種最適化ツールを順番に実行しているだけなので、PNGgauntletやBlastPNGとやってる事は大体同じです。
重ねがけはそんなに意味がないので、最近はこれ1つで全て済ませています。