【发布时间】:2017-08-17 09:36:24
【问题描述】:
据我所知,这是将其保存在照片库中的简单方法。但它可以用自定义文件名保存。
var someImage = UIImage.FromFile("someImage.jpg");
someImage.SaveToPhotosAlbum((image, error) => {
var o = image as UIImage;
Console.WriteLine("error:" + error);
})
但我想用 filename.jpg 将它保存在照片库中。
我尝试了很多代码,但没有任何帮助。
代码 1:
var imageName = "/" + dicomId.ToString() + ".jpg";
var documentsDirectory = Environment.GetFolderPath
(Environment.SpecialFolder.Personal);
string jpgFilename = System.IO.Path.Combine(documentsDirectory, imageName); // hardcoded filename, overwritten each time
NSData imgData = dicomImage.AsJPEG();
NSError err = null;
if (imgData.Save(jpgFilename, false, out err))
{
Console.WriteLine("saved as " + jpgFilename);
}
else
{
Console.WriteLine("NOT saved as " + jpgFilename + " because" + err.LocalizedDescription);
}
此代码部分进入 if 条件,但无法保存图像。
代码 2:
如果使用这部分代码
var documentsDirectoryPath = NSSearchPath.GetDirectories(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomain.User, true)[0];
它给你没有保存图像的权限。
我在 google 和 SO 上尝试了很多东西,但对我没有任何帮助。
编辑:
info.plist
任何帮助将不胜感激。
【问题讨论】:
-
您是否在 plist 文件中添加了适当的权限?特别是隐私 - 照片库使用说明
-
@saketkumar 我已经添加了权限..
-
在你的标题中你说你想保存 png 文件,有问题你说,你想用 jpg 保存它。您希望以哪种格式保存?
-
@saketkumar 我更新了我的问题..
-
Shared Photo Library(照片框架)中的文件名不可管理。它们是 PHAsset 中的只读工件,可能会因 iCloud 同步等原因而发生变化...如果您需要一种方法来跟踪共享库中的 您的 应用程序图像,请将自定义元数据分配给图像。
标签: file xamarin xamarin.ios uiimage save