Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Macromedia Flash(SWF) 用フィルタ作りました



寺西です。

# いろいろ準備中なのですが、せっかくなのでちょろっと SWF 用フィルタ
# 関係の話を書いておきます。

Yukio USUDA wrote:
> 
> たくさんのファイルを試したわけではありませんが良好に動作していると思います。

テストありがとうございます。(手元のフィルタはその後、多少修正
デバッグしています。)

少なくとも最近の Macromedia Flash で出力したものなら、そこそこ
動作するようです。

Illustrator9 で出力した文字列も大丈夫です。(ただし、アウトライン化
すると、文字ではなく図形扱いになるので文字情報はなくなって
しまいます。) 
# Illustrator9 のサンプルデータは tests/data/ja/ に入れてあります。
 
> openofficeのサイトにあった文字化けするというファイルは
> ASCII以外の文字が含まれているため日本語の文書ではないのに
> わかちがきルーチンに入ってしまうようです。

このファイル実は Flash のフォーマットからいうとちょっと規格外
のものなんです。
というのも、文字情報には ANSI 文字か Shift_JIS か(バージョンに
よっては UTF-8 も可)というフラグがあって、英文なら ANSI 文字を
使うべきです。
しかし、ANSI 文字だと 7bit 文字しか使えないので、Shift_JIS 
フラグをセットしておいて、フォントには Latin-1 のものを使用して
(C) とか (R)、TM、" 等を強引に使っているのです。

フォント名からそのフォントのコードが何用のものなのかを判断
すれば、問題は解決できるのですが、そういったデータベースを
持つことは非現実的なので、文字化けは仕方ないかなという
ところです。(Shitf_JIS と言いつつ、それは Shift_JIS じゃない
のですから、困ったものです。)

> これはこのフィルターのせいではないのですが少し気になりました。

その他、いろいろ調べてみると、Macromedia Flash で作成したもの
以外の場合は、文字コードが壊れていたりするものが多々あることも
わかっています。

.swf ファイルには文字コードとその文字のグリフデータが入って
いるのですが、文字コードが壊れていてもグリフデータとの対応関係が
維持できておれば、Flash Player では何の問題もなく表示できます。
このため、.swf ファイルを出力するツール類にバグがあっても、
あまり気づかないのかもしれません。(実害ないですからね。)

いろいろ調べた結果、
1. .swf ファイルに文字コードが含まれていないもの
2. .swf ファイル自体に問題のあるもの(文字コードが壊れている等)
3. swf2html に問題があって漢字コードを誤認するもの
があり、これらはうまく文字情報が取り出せない、文字化けを起こすことが
わかっています。

1, 2 に関しては文字コードは使わず、グリフデータを OCR で文字認識して
切り出すとかすれば、(文字認識力に依存するが)より多くの .swf から
文字情報を取り出すことはできるだろうとは思っています。
(安い OCR ライブラリがあればなぁ。)
# 対応するつもりはないですが。

3 に関しては swf2html を改良修正することで対応可能ですので、
こちらについては tswf2html という別プログラム(有料)を作って対応する
ことにします。(準備中)
# swf2html の方は多少の不具合があるとしても無償で手に入れられるので、
# tswf2html が有料だとしても困る方はそうはいないでしょう。
# そもそも .swf フィルタのニーズがあるのかすら怪しいですが...。
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E