メインメニューを開く

Xamarin.Mac/CGImageをNSImageに変換する

< Xamarin.Mac
2017年11月1日 (水) 07:13時点におけるimported>Administratorによる版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

目次

概要編集

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は面倒でも直接的に保存した方がいいかもしれない。

関連項目編集

参考文献編集