差分
ナビゲーションに移動
検索に移動
ページの作成:「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]]
よくある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]]