0

FileSteam.open()を使用して、ディスクから画像ファイルを同期的に読み取りたい。次に、readBytes()を使用してそれらをByteArrayに取り込むことができますが、それをBitmapDataに取り込む方法が見つかりません。Imageはそれをそのまま読み取ることができますが、BitmapDataが必要です。

助言がありますか?

4

3 に答える 3

5

パッケージで...をflash.display使用すると、が得られ、から簡単にアクセスできます...これにより、操作全体が非同期になります。もちろん...実行できるのは、デコーダーを自分で作成することだけです。 ..。。Loader::loadBytesBitmapBitmapDataBitmap::bitmapData

現在、AS3、as3corelibにPNGエンコーダーがあり、他にもあると思いますが、フラッシュはそれ自体でこれを行うため、おそらくほとんどの人はデコーダーを作成するのは無意味だと考えています。また、デコードはデコードよりも簡単です。つまり、フォーマット全体を実装する必要があります...それでも、もちろんショットを与えることができます...

まあ、それが役立つことを願っています...

グリーツ

back2dos

于 2009-07-26T09:08:23.730 に答える
0

githubのこのライブラリには、同期的に動作するPNGDecoderがあります。試してみる:

https://github.com/terrynoya/ASImageLib

使用法ウィキから:

var bytes:ByteArray = [PNG bytes];
var bmpData:BitmapData = new PNGDecoder().decode(bytes);
this.addChild(new Bitmap(bmpData));

ただし、組み込みクラスを使用する方が高速であると思います。ユースケースによって異なりますが、通常、画像などのUIを処理する場合は、UIスレッドのブロック(アプリのスタッター)を回避するために非同期を使用することをお勧めします。ただし、いくつかのユースケースが存在する可能性があります。

于 2014-02-14T18:13:24.787 に答える
-1

FileStreamは純粋なデータを管理するために機能し、BitmapDataはデータをコンパイルまたは逆コンパイルするために機能するため、それは理にかなっています。

Imが使用しようとしている方法は、オリジンのファイルを読み取り、アプリケーションディレクトリに一時ファイルを書き込むことです。これは、ローダークラスが問題なく到達できる可能性があります。

幸運を祈ります!

于 2011-09-22T22:47:23.817 に答える