Bitmapイメージにテキスト文字列を書き込む
2018-03-21


UWPアプリにて、テキスト文字列を書き込んだBitmapイメージを得るには、RenderTargetBitmapが使えるが、UI上に表示されているものでないと生成できない。

素のイメージなら、pixelデータを格納したbyte配列を用意し、WritebleBitmapにstream経由で流し込み、できあがったWritableBitmapのPixelBufferからSoftwareBitmapを生成できる。では、テキスト文字列をどう書き込むか。

Win2Dのパッケージを用いると、このあたり解決できそう。

ここでは、Bitmapイメージを得て、Clipboardにイメージデータとしてコピーする。

禺画像]

220行;CanvasDeviceを生成。実際のCanvasの代わり。
221行;CanvasRenderTargetを生成。SoftwareBitmapの代わり。最初の引数のICanvasResourceCreatorに一つ前で作成したCanvasDeviceが使えるのがポイント。
223行以下;テキスト文字列の準備
245行;Win2Dでは、DrawXXXは、イベントハンドラの中で用いるのだが、マニュアルでSessionを作成することもできる。Win2DのArticlesの"Offscreen drawing"にあるとおり。
260行;Bitmap書き出し先のRandomAccessStreamを生成。
262行;書き出しの実施。BitmapEncoderのFlushAsyncの代わり。ファイルへの書き出しもできる。この先、BitmapDecoderにつなげてもよい。
268行;RandomAccessStreamReferenceを生成。Clipboardにデータを渡すDataPackageはこの型を要求する。
269行;DataPackageに、Bitmapイメージを供給するRandomAccessStreamReferenceを設定。

禺画像]

実際にクリップボードにコピーされたBitmapイメージをペイントソフトでクリップボードから貼り付けたようす。

[Windowsストアアプリ]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット