以下の手順を試してください。
私たちは本当にバイト配列とファイル名をディスクに保存することに興味があるので、インターフェイスはかなりシンプルです。
public interface IPicture
{
void SavePictureToDisk (string filename, byte[] imageData);
}
DependencyServiceは、イメージの保存を適切なクラスに委任します。 DependencyServiceの使用は、次のとおりです。
DependencyService.Get<IPicture>().SavePictureToDisk("ImageName", GetByteArray());
プラットフォーム固有のプロジェクトにクラスを作成します
iOSのプロジェクト
[assembly: Xamarin.Forms.Dependency(typeof(Picture_iOS))]
namespace ImageSave.iOS
{
public class Picture_iOS: IPicture
{
public void SavePictureToDisk(string filename, byte[] imageData)
{
var MyImage = new UIImage(NSData.FromArray(imageData));
MyImage.SaveToPhotosAlbum((image, error) =>
{
//you can retrieve the saved UI Image as well if needed using
//var i = image as UIImage;
if(error != null)
{
Console.WriteLine(error.ToString());
}
});
}
}
}
ご返信ありがとうございます。私はそれが依存サービスを使用してそれを行うことができることを知っています。しかし、ちょうどここで説明されているPCLStorageについて知りたがっていますhttps://github.com/dsplaisted/PCLStorage。これは私にとってうまくいっていますが、私が直面している唯一の問題は、アプリケーションを再デバッグするときに画像にアクセスできないことです。それ以外の場合は、アプリを終了し、デバイスでアプリを起動した後、正常に動作します。だから私は実際にどこのPCLStorageがイメージを格納しているのか理解したいと思いますか? –