差分

ナビゲーションに移動 検索に移動

Xamarin.MacでNSImageをSystem.Drawing.Imageに変換する

51 バイト除去, 2017年6月19日 (月) 04:15
編集の要約なし
[[MonoMac]]においてMonoMacXamarin.AppKitMacにおいてAppKit.NSImageをSystem.Drawing.Imageに変換する方法を試行錯誤している。
==方法1==
using System.Drawing;
using System.IO;
using MonoMac.Foundation; using MonoMac.AppKit;
public static class NSImageExtentions
</source>
なお、MonoMacのクラス群はほぼDisposeメソッドを実装しており、なお、Xamarin.Macのクラス群はほぼDisposeメソッドを実装しており[[メモリリーク]]を防ぐために「using」が重要となる。を防ぐためにも「using」が重要となる。大容量の[[メモリ]]を搭載している昨今の[[Mac]]では多少の[[メモリリーク]]をする[[アプリ]]でも大して問題にならないが、MonoMac.QTKitを使ったをしても大して問題にならないが、QTKitやAV Foundationを使った[[ビデオキャプチャ]]などでは1フレームごとに上記のような処理が走り、1などでは1/30秒や1/60秒といった速度で多種多様な[[インスタンス]]が生成され続けるため、Disposeを怠ると凄い勢いで60秒といった速度で1フレームごとに上記のような処理が走るため、Dispose呼出を怠ると凄い勢いで[[メモリリーク]]することになる。
これに加えてビデオキャプチャではSystem.GC.Collectメソッドの手動実行も重要な場合がある。
ビデオキャプチャなどの常時負荷が高い状況化では[[ガベージコレクション]]の自動実行だけでは処理が追いつかない場合があるようだ。
 
ちなみにSystem.GC.Collectをメインスレッド以外で実行しても効果がないようだ。
凄い嵌った。
==関連項目==*[[MonoMacXamarin.Mac]]*[[MonoMac/NSImageをファイルに保存する]]*[[MonoMac/System.Drawing.ImageをNSImageに変換する]]
==参考文献==
{{reflist}}
[[category:MonoMac]]
[[category:Xamarin.Mac]]
匿名利用者

案内メニュー