私はスクリーンショットをつかみ、MacのXamarinとC#を使ってディスクに保存しようとしています。私は以下のコードを書いた:Xamarin - スクリーンショットを取得してxamarin macを使ってディスクに保存するにはどうすればいいですか?
public static void TakeScreenshotAndSaveToDisk(string path)
{
var fullScreenBounds = NSScreen.MainScreen.Frame;
IntPtr ptr = CGWindowListCreateImage(fullScreenBounds, CGWindowListOption.OnScreenAboveWindow, 0, CGWindowImageOption.Default);
var cgImage = new CGImage(ptr);
var fileURL = new NSUrl(path, false);
var imageDestination = CGImageDestination.Create(new CGDataConsumer(fileURL), UTType.PNG, 1);
imageDestination.AddImage(cgImage);
imageDestination.Close();
imageDestination.Dispose();
fileURL.Dispose();
cgImage.Dispose();
}
このメソッドは実行され、ファイルは正しい場所に表示されます。私がそれを開こうとすると、それは空白になります。ファイルの「情報を見る」をクリックするとプレビューは表示されません。 アプリを閉じると画像を開き、「情報を見る」にプレビューが表示されます。
私はここで間違っていますか?オブジェクトにDispose()を呼び出してもリソースが解放されないようです。
ありがとうございました。
おかげApineda。 CGDataConsumerオブジェクトでdisposeを呼び出すと、このトリックが実行されました。 – BVintila