差分
ページの作成:「==実装1== NSBitmapImageRepのコンストラクタの引数に画面の座標を指定すると、その範囲のスクリーンキャプチャが取れる。 <sour...」
==実装1==
NSBitmapImageRepのコンストラクタの引数に画面の座標を指定すると、その範囲の[[スクリーンキャプチャ]]が取れる。
<source lang="csharp">
public class RadialLineView : NSView
{
//〜〜〜省略〜〜〜
public override void DrawRect(CGRect dirtyRect)
{
base.DrawRect(dirtyRect);
var context = NSGraphicsContext.CurrentContext.GraphicsPort;
// 白色で塗りつぶす
context.SetFillColor(1.0f, 1.0f, 1.0f, 1.0f);
context.FillRect(dirtyRect);
// 黒色の丸を描く
context.SetLineWidth(2.0f);
context.SetStrokeColor(0.0f, 0.0f, 0.0f, 1.0f);
context.StrokeEllipseInRect(dirtyRect);
// NSViewをロックしてビットマップを取得
this.LockFocus();
var rep = new NSBitmapImageRep(dirtyRect);
this.UnlockFocus();
// TIFFファイルとして保存する
rep.TiffRepresentation.Save("/tmp/test.tiff", true);
}
}
</source>
==関連項目==
*[[Xamarin.Mac/CoreGraphicsの基本的な使い方]]
==参考文献==
{{reflist}}
{{stub}}
NSBitmapImageRepのコンストラクタの引数に画面の座標を指定すると、その範囲の[[スクリーンキャプチャ]]が取れる。
<source lang="csharp">
public class RadialLineView : NSView
{
//〜〜〜省略〜〜〜
public override void DrawRect(CGRect dirtyRect)
{
base.DrawRect(dirtyRect);
var context = NSGraphicsContext.CurrentContext.GraphicsPort;
// 白色で塗りつぶす
context.SetFillColor(1.0f, 1.0f, 1.0f, 1.0f);
context.FillRect(dirtyRect);
// 黒色の丸を描く
context.SetLineWidth(2.0f);
context.SetStrokeColor(0.0f, 0.0f, 0.0f, 1.0f);
context.StrokeEllipseInRect(dirtyRect);
// NSViewをロックしてビットマップを取得
this.LockFocus();
var rep = new NSBitmapImageRep(dirtyRect);
this.UnlockFocus();
// TIFFファイルとして保存する
rep.TiffRepresentation.Save("/tmp/test.tiff", true);
}
}
</source>
==関連項目==
*[[Xamarin.Mac/CoreGraphicsの基本的な使い方]]
==参考文献==
{{reflist}}
{{stub}}