bytearrayの値をパネルの背景画像に割り当てる方法。誰かがアイデアやexperiance plzを持っている場合は、問題を克服するのに役立ちます。簡単な説明:bytearrayを画像や画像に変換する方法はbytearrayですか?
私はパネルコントロールを持っており、イメージをwebserviceから取得してイメージを取得したいと考えています。だから私はsetstyle()を使用していますが、その画像を受け付けません。私のパネルの背景画像にその画像を追加する方法。
bytearrayの値をパネルの背景画像に割り当てる方法。誰かがアイデアやexperiance plzを持っている場合は、問題を克服するのに役立ちます。簡単な説明:bytearrayを画像や画像に変換する方法はbytearrayですか?
私はパネルコントロールを持っており、イメージをwebserviceから取得してイメージを取得したいと考えています。だから私はsetstyle()を使用していますが、その画像を受け付けません。私のパネルの背景画像にその画像を追加する方法。
AS3の場合は、adobe corelibを使用できます。このチュートリアル... http://ntt.cc/2009/01/09/as3corelib-tutorialhow-to-use-jpegencoder-and-pngencoder-class-in-flex.html
リンクが壊れています –
ちょうど同様のチュートリアルへのリンクが変更されましたが、Alex Riosが投稿したような外部ライブラリを使用しないで他の回答を確認してください。 – ozke
オムを確認し、よく私はからすべてのデータを抽出するために、次を使用し、その後 ...さんは「myBmp」を言わせて、それはイメージであるため、あなたがBitmapDataでそれを持っている、と推定しますBitmapData:
var bytes:ByteArray = myBmp.getPixels(myBmp.rect);
および書き込みするために、次の:
myBmp.setPixels(myBmp.rect, bytes);
音符のみ生32ビットの画素データを圧縮せずに、のByteArrayに格納され、また、元の画像の大きされていること。
圧縮のために、ozkeが言ったように、あなたは
Adobeの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);
私は配列内の画像をロードするために)(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>
私は同じ問題がありました。回避策として、メインCanvas内にネストされたサブCanvasを作成し、サブCanvasの背後にあるメインCanvasにImageを追加しました。サブキャンバスに描画されたものは、画像の上に表示されます。
loadBytes関数を使用してLoaderインスタンスにロードするだけです。 Flexの3以上で
var ldr:Loader = new Loader();
ldr.loadBytes(myByteArray);
addChild(ldr);
、あなただけ実行する必要があります。
yourImage.source = yourByteArray;
よろしく!
+1ねえ。それは本当にきれいに見えます。なぜ私は、イメージのソースとして 'byteArray'を使うために、' img.load(myByteArray) 'のようなものを書かなければならないと言ったのですか?それは理にかなっていますか? –
質問は背景イメージスタイルに関するものですが、これはsetStyle( 'backgroundImage'、...)では機能しません –
詳細情報が役立ちます。 –