Xamarin.iOS でスクリーンショットを撮り、この画像を UIImage に保存するにはどうすればよいですか。
Obj-C の例をいくつか見てきましたが、C# はありません
Xamarin.iOS でスクリーンショットを撮り、この画像を UIImage に保存するにはどうすればよいですか。
Obj-C の例をいくつか見てきましたが、C# はありません
このコードはスクリーンショットを撮り、写真をカメラロールに保存します。
UIGraphics.BeginImageContext(UIScreen.MainScreen.Bounds.Size);
try
{
var mainLayer = UIApplication.SharedApplication.KeyWindow.Subviews[0].Layer;
mainLayer.RenderInContext(UIGraphics.GetCurrentContext());
var img = UIGraphics.GetImageFromCurrentImageContext();
img.SaveToPhotosAlbum((iRef, status) =>
{
if (status != null)
{
new UIAlertView("Problem", status.ToString(), null, "OK", null).Show();
}
else
{
new UIAlertView("Saved", "Saved", null, "OK", null).Show();
}
});
}
finally
{
UIGraphics.EndImageContext();
}
ただし、アプリがクラッシュしなかったことを確認するには、ユーザーに画像をカメラ ロールに保存する許可を求める必要があります。これを info.plist に追加します
<key>NSPhotoLibraryAddUsageDescription</key>
<string>This app requires read and write permission from the user.</string>
if you're adding it from the generic editor then "Privacy - Photo Library Additions Usage Description" will be the given option you will find out instead of "NSPhotoLibraryAddUsageDescription".