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

imported>Administrator
編集の要約なし
 
(3人の利用者による、間の4版が非表示)
2行目: 2行目:
CGImageを直接的に[[ファイル]]に保存することは出来るが、[[Xamarin.Mac]]のClass APIプロジェクト及び[[MonoMac]]プロジェクトではMobileCoreServices.UTType列挙体を自前で用意しないとならないなどかなりかなり面倒である。そこでCGImageをNSImageに変換して[[ファイル]]に保存してやった方が楽ではないかと考えた。
CGImageを直接的に[[ファイル]]に保存することは出来るが、[[Xamarin.Mac]]のClass APIプロジェクト及び[[MonoMac]]プロジェクトではMobileCoreServices.UTType列挙体を自前で用意しないとならないなどかなりかなり面倒である。そこでCGImageをNSImageに変換して[[ファイル]]に保存してやった方が楽ではないかと考えた。


==実装==
== 実装 ==
考えるまでもなく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>


ただしスクリーンキャプチャをパラパラアニメ風に連射で撮ってみたことろ変換に伴う負荷(上記コード部分の負荷)が結構高い。やっぱりCGImageは面倒でも直接的に保存した方がいいかもしれない。
ただしスクリーンキャプチャをパラパラアニメ風に連射で撮ってみたことろ変換に伴う負荷(上記コード部分の負荷)が結構高い。やっぱりCGImageは面倒でも直接的に保存した方がいいかもしれない。


==関連項目==
== 関連項目 ==
*[[MonoMac/NSImageをファイルに保存する]]
* [[MonoMac/NSImageをファイルに保存する]]
*[[Xamarin.Mac/CGImageをファイルに保存する]]
* [[Xamarin.Mac/CGImageをファイルに保存する]]
*[[Xamarin.Mac/スクリーンキャプチャを撮る]]
* [[Xamarin.Mac/スクリーンキャプチャを撮る]]
* [[Xamarin.Mac/動画から静止画を抽出する]]
* [[Xamarin.Mac/画素配列からCGImageを生成する]]
* [[Xamarin.Mac/NSImageを回転させる]]


==参考文献==
==参考文献==
20行目: 23行目:
{{stub}}
{{stub}}


[[category:Xamarin.Mac]]
[[category: MonoMac]]
[[category:MonoMac]]
[[category: Xamarin.Mac]]
[[category: Core Graphics]]