「Xamarin.Mac/CGImageをNSImageに変換する」の版間の差分
ナビゲーションに移動
検索に移動
imported>Administrator (→関連項目) |
(→実装) |
||
3行目: | 3行目: | ||
==実装== | ==実装== | ||
− | + | 考えるまでもなくNSImageのコンストラクタにあった。MacのNSImageはiOSのUIImageと似たようなものだが、Macではコンストラクタの引数にサイズ指定が必須となっている点が異なる。 | |
<source lang="csharp"> | <source lang="csharp"> | ||
− | var nsImage = new NSImage(cgImage, new | + | var nsImage = new NSImage(cgImage, new CGSize(cgImage.Width, cgImage.Height)); |
</source> | </source> | ||
2017年5月9日 (火) 06:00時点における版
概要
CGImageを直接的にファイルに保存することは出来るが、Xamarin.MacのClass APIプロジェクト及びMonoMacプロジェクトではMobileCoreServices.UTType列挙体を自前で用意しないとならないなどかなりかなり面倒である。そこでCGImageをNSImageに変換してファイルに保存してやった方が楽ではないかと考えた。
実装
考えるまでもなくNSImageのコンストラクタにあった。MacのNSImageはiOSのUIImageと似たようなものだが、Macではコンストラクタの引数にサイズ指定が必須となっている点が異なる。
var nsImage = new NSImage(cgImage, new CGSize(cgImage.Width, cgImage.Height));
ただしスクリーンキャプチャをパラパラアニメ風に連射で撮ってみたことろ変換に伴う負荷(上記コード部分の負荷)が結構高い。やっぱりCGImageは面倒でも直接的に保存した方がいいかもしれない。
関連項目
- MonoMac/NSImageをファイルに保存する
- Xamarin.Mac/CGImageをファイルに保存する
- Xamarin.Mac/スクリーンキャプチャを撮る
- Xamarin.Mac/動画から静止画を抽出する