2009-05-25 16 views
6

bytearrayの値をパネルの背景画像に割り当てる方法。誰かがアイデアやexperiance plzを持っている場合は、問題を克服するのに役立ちます。簡単な説明:bytearrayを画像や画像に変換する方法はbytearrayですか?

私はパネルコントロールを持っており、イメージをwebserviceから取得してイメージを取得したいと考えています。だから私はsetstyle()を使用していますが、その画像を受け付けません。私のパネルの背景画像にその画像を追加する方法。

+0

詳細情報が役立ちます。 –

答えて

4

オムを確認し、よく私はからすべてのデータを抽出するために、次を使用し、その後 ...さんは「myBmp」を言わせて、それはイメージであるため、あなたがBitmapDataでそれを持っている、と推定しますBitmapData:

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

および書き込みするために、次の:

myBmp.setPixels(myBmp.rect, bytes); 

音符のみ生32ビットの画素データを圧縮せずに、のByteArrayに格納され、また、元の画像の大きされていること。

圧縮のために、ozkeが言ったように、あなたは

1

Adob​​eのJPGEncoder(com.adobe.images.JPGEncoder)クラスを使用して...、Corelibではを参照すべきであるとのByteArrayはかなりあなたが必要とするすべてです。 (仮定CAPSはあなたが記入する必要があると思い変数です)バイト配列に画像を変換:

// -- first draw (copy) the image's bitmap data 
var image:DisplayObject = YOUR_IMAGE; 
var src:BitmapData = new BitmapData(image.width, image.height); 
src.draw(image); 

// -- encode the jpg 
var quality:int = 75; 
var jpg:JPGEncoder = new JPGEncoder(quality); 
var byteArray:ByteArray = jpg.encode(src); 
1

私は配列内の画像をロードするために)(flash.display.Loaderオブジェクトを使用していました。イメージがロードされた後に起動されるCompleteイベントがあります。次に、画像をビットマップに描画し、それをパネルに配置できる画像のデータに設定します。あなたはこの幸運の後に作ることができることを願っています。

public static function updateImage(img:Image, matrix:Matrix, 
            pageDTO:PageDTO, bitmapData:BitmapData):void { 
    var loader:flash.display.Loader = new flash.display.Loader(); 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function (e:Event) : void { 
     bitmapData.draw(loader.content, matrix); 
     pageViewer.data = new Bitmap(bitmapData); 
    }); 
    loader.loadBytes(pageDTO.thumbnail); 
} 

<mx:Panel> 
    <mx:Image id="pageViewer"/> 
</mx:Panel> 
0

私は同じ問題がありました。回避策として、メインCanvas内にネストされたサブCanvasを作成し、サブCanvasの背後にあるメインCanvasにImageを追加しました。サブキャンバスに描画されたものは、画像の上に表示されます。

0

loadBytes関数を使用してLoaderインスタンスにロードするだけです。 Flexの3以上で

var ldr:Loader = new Loader(); 
ldr.loadBytes(myByteArray); 
addChild(ldr); 
12

、あなただけ実行する必要があります。

yourImage.source = yourByteArray; 

よろしく!

+0

+1ねえ。それは本当にきれいに見えます。なぜ私は、イメージのソースとして 'byteArray'を使うために、' img.load(myByteArray) 'のようなものを書かなければならないと言ったのですか?それは理にかなっていますか? –

+0

質問は背景イメージスタイルに関するものですが、これはsetStyle( 'backgroundImage'、...)では機能しません –

関連する問題