忍者ブログ
[32]  [31]  [30]  [29]  [28]  [27]  [26]  [25]  [24]  [23]  [22
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

一部ソフトっていうか、SAIで開けなかったんだけどね。
とりあえず改造を施していない標準のJPEGEncoderから出力したjpegファイルはSAIで開けた。
ということは僕が改造したことが原因であるのだろう。

で、その開けないほうのjpegをこのソフトを使って解析したところ、「EOI(End Of Image) ワードが無い」と出た。標準ライブラリが出力したファイルにはEOIが書き込まれているらしいので、ほぼ間違いなくこれが原因。
早速改造した方(あまり凝らずにJPEGEncoder2とした)を確認する。

結論から言うと、
dispatcher.dispatchEvent(new Event(Event.COMPLETE));
writeWord(0xFFD9); //EOI書き込み
break;//エンコード終了
こうなっていたのを
writeWord(0xFFD9); //EOI書き込み
dispatcher.dispatchEvent(new Event(Event.COMPLETE));
break;//エンコード終了
こうしたらEOIが書き込まれるようになった。 確かに上のソースだけを見ると、呼び出し側のコンプリートエヴェントのリスナー関数が、EOIをまだ書き込んでないByteArrayを読み込みそうに見えなくもないけども、やっぱり納得がいかない。
なんでなん?リスナー関数はスレッドみたいに割り込めてしまうん?

とりあえず解決。
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
無臭
イベントを発するのは、イベントリスナーを呼び出すのと同義だから当然と言えば当然と思います。
br 2009/04/20(Mon)22:00:28 編集
あれぇ
じゃあイベントに対する考え方が間違ってました。現在実行中のメソッド終了後、スタックされたイベントのハンドラが順に実行されるもんだと…。
kndy 2009/04/21(Tue)06:40:52 編集
この記事へのトラックバック
この記事にトラックバックする:
26歳のハローワールド
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最新コメント
[11/27 gyzwviyehl]
[11/18 Tepexaxyonelo]
[09/12 gomFolley]
[08/16 CypeBachCoece]
[06/02 gb]
[03/06 kishima]
[01/18 KNDY]
[01/16 kage]
[12/23 KNDY]
[12/23 kage]
最新トラックバック
ブログ内検索
アクセス解析
プロフィール
HN:
knd
HP:
自己紹介:
絶賛迷走中。
UNIQLO CALENDAR
忍者ブログ [PR]