0

bytearray に変換された bitmapdata オブジェクトがあります。

var bytes:ByteArray = bitmapDataA.getPixels(bitmapDataA.rect);

後で使用するために .jpg ファイルとして保存します。

writeStream.writeBytes(bytes, 0, bytes.bytesAvailable);

今、データを取得したいとき:

var file:File = File.documentsDirectory.resolvePath("data/"+photoNameVec[loadCounter]);         
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.READ);
var fileContent:ByteArray = new ByteArray;
fileStream.readBytes(fileContent);
fileStream.close();         
var bmpData:BitmapData = new BitmapData(XXX, YYY);
bmpData.setPixels(bmpData.rect, fileContent);
addChild(new Bitmap(bmpData));

しかし、グラフィックを正しく表示するには、正確な XXX と YYY を取得する必要があります。これどうやってするの?

編集:

bytearray に基づいて bitmapdata の幅と高さを決定する方法がなかったため、撮影したすべての写真を 1024px x 768px に変換することにしました。

var bitmapDataA:BitmapData = new BitmapData(mpLoaderInfo.width, mpLoaderInfo.height);
var matrix:Matrix = new Matrix();
matrix.scale( 1024 / mpLoaderInfo.width, 768 / mpLoaderInfo.height);
var bitmapDataB:BitmapData = new BitmapData(1024,768);
bitmapDataB.draw(mpLoaderInfo.content, matrix, null, null, new Rectangle(0,0,1024,768), true);

bitmapdata のgetPixelsメソッドによって作成された bytearray から Width x Height を取得するためのヒントをまだ待っています。

4

3 に答える 3

0

私はそれが最も適した解決策だと思います:)幅と高さを収集する追加の値でbytearrayを展開するだけです。

http://www.ghostwire.com/blog/archives/as3-serializing-bitmaps-storing-bitmapdata-as-raw-binarybytearray/

追伸: 非圧縮ファイルの作成と読み取りは、png/jpg を作成するよりもはるかに高速です。

于 2013-07-15T23:09:39.820 に答える