【问题标题】:How to Save the Image in custom location programatically?如何以编程方式将图像保存在自定义位置?
【发布时间】:2018-02-28 00:07:00
【问题描述】:

我需要将图像保存在 iOS 中的自定义文件夹位置。我使用以下代码保存图像,同时保存在设备的默认位置。

        UIGraphics.BeginImageContext(nativechart.Frame.Size);
        nativechart.Layer.RenderInContext(UIGraphics.GetCurrentContext());

        UIImage image = UIGraphics.GetImageFromCurrentImageContext();
        UIGraphics.EndImageContext();

        //Captured chart image will save into photo album

        image.SaveToPhotosAlbum(new UIImage.SaveStatus(delegate (UIImage img, NSError error) { }));

        ////save image

        NSData data = image.AsJPEG(1.0f);
        NSFileManager fileManager = NSFileManager.DefaultManager;
        string[] paths = NSSearchPath.GetDirectories(NSSearchPathDirectory.PicturesDirectory, NSSearchPathDomain.All, true);
        string documentsDirectory = paths[0];
        string fullPath = documentsDirectory + "/" + filename;
        fileManager.CreateFile(fullPath, data, new NSDictionary());

您能帮我把图片保存在自定义文件夹位置吗?

【问题讨论】:

标签: ios xamarin xamarin.ios uiimage


【解决方案1】:

下面是保存图片到文档目录的代码

   var photo = yourImageFile as UIImage;
   var documentsDirectory = Environment.GetFolderPath
                         (Environment.SpecialFolder.Personal);
    var directoryname = Path.Combine(documentsDirectory, "FolderName");
   Directory.CreateDirectory(directoryname);
   string jpgFilename = System.IO.Path.Combine (directoryname, "Photo.jpg"); // hardcoded filename, overwritten each time. You can make it dynamic as per your requirement.

   NSData imgData = photo.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);
   }

来源Link

【讨论】:

  • 以上代码已将图片保存在默认位置。我需要将图像保存在自定义文件夹中。
  • 是的..为此添加自定义路径。就像我们在 iOS 中所做的那样。您的自定义文件夹将在文档目录中可用。
  • 对不起,你能指导一下哪里需要自定义路径吗?
  • 此链接仅适用于 iOS forums.xamarin.com/discussion/94306/… iOS-SAVE File var documents = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); var directoryname = Path.Combine(documents, "FolderName"); Directory.CreateDirectory(目录名); FilePath = Path.Combine(directoryname, fileName) //你可以设置你想要的文件名只需要照顾扩展 iOS-GET File var documents = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); var directoryname = Path.Combine(documents, "FolderName" + "/" + fileName);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-09
  • 2013-03-07
  • 2017-01-03
  • 1970-01-01
  • 2010-11-21
  • 1970-01-01
相关资源
最近更新 更多