×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
例のアレ、ようやくカタチになったのだけど、不安なところが(今のところ)ひとつ。
JPGEncoderはencodeメソッドひとつでBitmapDataがBytesArrayになる簡便さがある反面、エンコード最中は他のメソッドが一切実行できなくなります。Flex GUIのエフェクトやアニメーションなども停止するので、メガピクセル超の画像をエンコードする際などは、非常に不安な気持ちで数秒~十数秒待たされることになります。
フリーズじゃないかと疑われてしまうのではないか、と。
苦し紛れにProgressBarなどを表示させてみましたが(進捗情報が得られないので漫然とバーが動くだけ)、そのアニメーションすら停止するので、フリーズの不安を和らげる効果がありません。
JPGEncoderはencodeメソッドひとつでBitmapDataがBytesArrayになる簡便さがある反面、エンコード最中は他のメソッドが一切実行できなくなります。Flex GUIのエフェクトやアニメーションなども停止するので、メガピクセル超の画像をエンコードする際などは、非常に不安な気持ちで数秒~十数秒待たされることになります。
フリーズじゃないかと疑われてしまうのではないか、と。
苦し紛れにProgressBarなどを表示させてみましたが(進捗情報が得られないので漫然とバーが動くだけ)、そのアニメーションすら停止するので、フリーズの不安を和らげる効果がありません。
スレッド(そうめん)を使えばあるいは?と思ったけども、処理時間を食ってるJPGEncoder.encode()そのものに手を加えない限り意味がなさそうです。(そもそも、まだスレッドというものを理解していない)。
で、JPGEncoderに手を加えようと思うた次第です。つまりIEventDispatcherを実装させて、progressとcompleteぐらいは送出させるようにしたい。して欲しい。
ある条件を満足したときにProgressEventをdispatchさせて、同時にtimerで1msecくらい処理を中断させればいいのかな。問題はprogressの発生条件を如何するか。
ざっと見たところ、JPGEncoderのencodeメソッド内では8x8のブロックに区切って変換をしているようだ。
例えば壁紙サイズ 1920x1280だったらば、38400回の変換操作が行われる。
変換1回につき進捗報告を行うと、Timerを1msecに設定しても待機時間だけで38秒になってしまう。
なので、方法としては
・N回の変換毎にProgressEventを送出して Timer開始&待機
・全体のP% 終了ごとに以下略
が考えられるかな。
前者では画素数に応じて総待機時間も変化する。逆に進捗報告間隔は一定。
後者では画素数に因らず総待機時間は一定。
どちらがいいのか、2つ実装して試してみよう。何かできそうな気がしてきた。
続く。
で、JPGEncoderに手を加えようと思うた次第です。つまりIEventDispatcherを実装させて、progressとcompleteぐらいは送出させるようにしたい。して欲しい。
ある条件を満足したときにProgressEventをdispatchさせて、同時にtimerで1msecくらい処理を中断させればいいのかな。問題はprogressの発生条件を如何するか。
ざっと見たところ、JPGEncoderのencodeメソッド内では8x8のブロックに区切って変換をしているようだ。
例えば壁紙サイズ 1920x1280だったらば、38400回の変換操作が行われる。
変換1回につき進捗報告を行うと、Timerを1msecに設定しても待機時間だけで38秒になってしまう。
なので、方法としては
・N回の変換毎にProgressEventを送出して Timer開始&待機
・全体のP% 終了ごとに以下略
が考えられるかな。
前者では画素数に応じて総待機時間も変化する。逆に進捗報告間隔は一定。
後者では画素数に因らず総待機時間は一定。
どちらがいいのか、2つ実装して試してみよう。何かできそうな気がしてきた。
続く。
PR
この記事にコメントする
26歳のハローワールド
カレンダー
06 | 2025/07 | 08 |
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 |
最新記事
(05/23)
(05/11)
(05/09)
(05/08)
(05/08)
(03/07)
(02/25)
(02/07)
(02/07)
(01/28)
最新コメント
[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]
最新トラックバック
カテゴリー
アーカイブ
ブログ内検索
アクセス解析