1

サイズの大きい SWF ファイルの画像をサーバーに送信してメールで送信しようとしていますが、送信時間に少し問題があります。

SWF は約 900px x 600px で、AS2 に制限されているため、この Bitmap Exporter クラスを使用しています。データを送信するためにいくつかの異なる方法を使用してみました。base10、base36、およびbase128ですが、いずれもタイムリーにファイルを送信しません。

現在、画像ごとに 60 ~ 120 秒を処理していますが、これは許容できません。

フラッシュを使用して大きなビットマップ データをサーバーに送信するために、このクラスまたは別のクラスを処理するためのアドバイスはありますか?

お時間をいただきありがとうございます。

4

5 に答える 5

1

アップロード時間が非常に長くなる理由は、画像がほとんど圧縮されていないためです(または、クラスの実装方法によってはまったく圧縮されていません)。16bppで900x600ピクセル(または現在フラッシュが使用しているもの)は、1.5MBの生データに相当します。

AS2に役立つ圧縮ライブラリがあるかどうかは疑わしいですが、それが可能な方法かもしれません。

クライアント側で画像を小さくする最も簡単な方法は、解像度を下げることです。サーバーに到達したら、フル解像度を使用していますか?そうでない場合は、それが可能な方法かもしれません。

(AS3を使用すると、これがはるかに簡単になることをご存知だと思います。そうすれば、あまり労力をかけずに画像全体をjpegクライアントサイドとして圧縮できますが、アプリケーションの残りの部分はAS2であるため、やや議論の余地があります)

于 2008-11-18T23:26:09.327 に答える
0

as3 用の優れた JPEG 圧縮クラスがいくつかあります。私が使用しているのは Google です: http://code.google.com/p/as3corelib/

それをas2に移植できるかもしれません...

于 2008-12-04T20:03:57.220 に答える
0

ちょっと飛んでリンクしてください - http://www.gskinner.com/blog/archives/2006/03/ Saving_bitmapda.html

編集 - これも役立つかもしれません! http://www.5etdemi.com/blog/archives/2006/10/the-ultimate-as2-bitmapdata- Saving-solution/

Grant Skinner は、画像データをより小さなカラー パレットにダウンサンプリングしてから、実行時に圧縮することを提案しています (彼は、圧縮された UTF-8 文字列に傾いていて、別の場所で画像変換を処理していました。私はサーバーを想像しています)。

UltimateBrent の JPEG 圧縮ライブラリへのリンクは、技術的に挑戦的ではないにしても、良いアイデアのように思えます。

カラーパレットの深さは問題ですか? 非可逆圧縮?

一連の変数をサーバーに送信し、ローカルで実行されている swf でイメージを再作成して、そこにエクスポートできますか? それとも、変数が多すぎますか (絵画タイプのプログラムのように)? たとえば、独自のアバターを作成するようなものであれば、設定を XML に変換し、サーバー上でそれから画像を生成できるかもしれません。わからない!

于 2009-04-01T03:12:46.420 に答える
0

ビットマップを圧縮するために、AS2 に単純な RLE アルゴリズムが存在しない場合は、それを実装することをお勧めします。きれいな単色のベクトル要素があると仮定すると、RLE は非常に優れた圧縮を提供するはずです。

于 2008-11-19T21:46:05.300 に答える
0

データをサーバーに送信するときにバイナリのシリアル化が可能になるため、amfphp を使用することもできます。

于 2008-11-19T04:40:03.750 に答える