「Xamarin.Mac/CGImageをNSImageに変換する」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
3行目: 3行目:
  
 
==実装==
 
==実装==
考えるまでもなくNSImageのコンストラクタにあった。
+
考えるまでもなくNSImageのコンストラクタにあった。MacのNSImageはiOSのUIImageと似たようなものだが、Macではコンストラクタの引数にサイズ指定が必須となっている点が異なる。
 
<source lang="csharp">
 
<source lang="csharp">
     var nsImage = new NSImage(cgImage, new SizeF(cgImage.Width, cgImage.Height));
+
     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は面倒でも直接的に保存した方がいいかもしれない。

関連項目

参考文献