ImageSnapshot でキャプチャしよう
海賊王をめざす男 マツです。こんにちは。
DisplayObject をキャプチャすることって結構あるのですが、Flex には便利な ImageSnapshot があるのでそれを使用します。
ImageSnapshot.captureBitmapData(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):BitmapData
BitmapData として UI コンポーネントの生のスナップショットを取得するユーティリティメソッド。
ImageSnapshot.captureImage(source:IBitmapDrawable, dpi:Number = 0, encoder:IImageEncoder = null, scaleLimited:Boolean = true):ImageSnapshot
コンポーネントのスナップショットを取得し、それを特定の解像度(dpi 単位)に拡大 / 縮小し、特定のイメージ形式にエンコードするユーティリティメソッド。
ImageSnapshot.encodeImageAsBase64(snapshot:ImageSnapshot):String
ImageSnapshot を Base-64 でエンコードされた String に変換するユーティリティメソッド。この String は、XML などのテキストベースの直列化形式で転送可能。
Image や SWFLoader コンポーネントに Bitmap を addChild しても Image コンポーネントの width と height は、0 のままなので注意が必要です。思い通りのレイアウトに配置するための工夫が必要になります。