「Xamarin.MacでNSImageをSystem.Drawing.Imageに変換する」を編集中

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

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

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

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: