从xamarin.ios将图像上载到Azure存储

从xamarin.ios将图像上载到Azure存储,xamarin,xamarin.ios,azure-storage-blobs,blobstore,Xamarin,Xamarin.ios,Azure Storage Blobs,Blobstore,如何从xamarin.ios将图像blob上载到azure存储? 从文档中,我研究了这个方法UploadFromFileAsync()可以工作,但它需要图像作为字符串路径,并且我将图像作为UIImage变量。 如何将图像转换为字符串路径以适合此方法参数 谢谢。您可以将UIImage转换为PNG或JPG,并将其转换为NSData对象,保存到文件系统中 在下面的示例中,我将基于UIImage的变量作为JPG保存到应用程序的Cache/Temp目录中的文件中。之后,您可以使用UploadFromFil

如何从xamarin.ios将图像blob上载到azure存储? 从文档中,我研究了这个方法UploadFromFileAsync()可以工作,但它需要图像作为字符串路径,并且我将图像作为UIImage变量。 如何将图像转换为字符串路径以适合此方法参数


谢谢。

您可以将
UIImage
转换为
PNG
JPG
,并将其转换为
NSData
对象,保存到文件系统中

在下面的示例中,我将基于
UIImage
的变量作为JPG保存到应用程序的Cache/Temp目录中的文件中。之后,您可以使用
UploadFromFileAsync
方法:

using (var nsData = uiImage.AsJPEG(100)) // or .AsPNG...
{
    var filePath = Path.Combine(Path.GetTempPath(), "MyImage.jpg");
    nsData.Save(filePath, true);
}

注意:文件可以/应该在上传完成后删除,但由于它位于缓存目录中,如果需要空间,操作系统可以回收它,或者重新启动设备。

您可以将
UIImage
转换为
PNG
JPG
,并将其转换为
NSData
对象,保存到文件系统中

在下面的示例中,我将基于
UIImage
的变量作为JPG保存到应用程序的Cache/Temp目录中的文件中。之后,您可以使用
UploadFromFileAsync
方法:

using (var nsData = uiImage.AsJPEG(100)) // or .AsPNG...
{
    var filePath = Path.Combine(Path.GetTempPath(), "MyImage.jpg");
    nsData.Save(filePath, true);
}
注意:上传完成后可以/应该删除该文件,但由于该文件位于缓存目录中,如果需要空间或设备重新启动,操作系统可以回收该文件