差分

ナビゲーションに移動 検索に移動

Xamarin.Mac/ビットマップに図形を描画する

1,840 バイト追加, 2017年8月24日 (木) 07:43
ページの作成:「Core Graphicsを使ってビットマップに図形を描画したいわけだ。 よくあるCore Graphicsのサンプルだとビューに直接描画ばかりでオ...」
Core Graphicsを使ってビットマップに図形を描画したいわけだ。
よくあるCore Graphicsのサンプルだとビューに直接描画ばかりでオフスクリーン(ビットマップ)への描画はあまりないようだ。そのためこの方法で正しいのかは知らない。とりあえず動いてはいる。

<source lang="csharp">
// まずオフスクリーンとなるビットマップを作る
var bitmapRep = new NSBitmapImageRep(
planes: IntPtr.Zero,
width: 100,
height: 100,
bps: 8,
spp: 4,
alpha: true,
isPlanar: false,
colorSpaceName: NSColorSpace.DeviceRGB,
rBytes: 0,
pBits: 0
);

// 描画コンテキストを作る
using (var offscreenContext = NSGraphicsContext.FromBitmap(bitmapRep))
{
NSGraphicsContext.CurrentContext = offscreenContext;
var cgContext = NSGraphicsContext.CurrentContext.GraphicsPort;

// 図形を描いてみる
cgContext.BeginPath();
cgContext.MoveTo(0, 0);
cgContext.AddLineToPoint(bitmapRep.Size.Width, bitmapRep.Size.Height);
cgContext.ClosePath();
cgContext.StrokePath();
}

// CGImageを取得する
var cgImage = bitmapRep.CGImage;

// この保存は独自の拡張メソッド
cgImage.Save("/tmp/test.png", MobileCoreServices.UTType.PNG);
</source>

== 関連項目 ==
* [[Xamarin.Mac/CoreGraphicsの基本的な使い方]]
* [[Xamarin.Mac/CGImageをファイルに保存する]]

[[category: Xamarin.Mac]]
[[category: Core Grpahics]]
匿名利用者

案内メニュー