2011-07-10 65 views
0

我是iphone开发新手。我用单声道触摸写我的应用程序。NSURL到文件路径Monotouch

我想从资产库中获得一张照片,我可以成功地做到这一点,但是我得到了URL为“assets-library://asset/asset.JPG”的路径。我想要做一个FileStream读取请求一个文件路径。我如何将NSURL转换为文件路径?

我用asset.DefaultRepresentation.Url.AbsoluteString这样做具有以下文件路径: 资产库://asset/asset.JPG ID = 1000000001 & EXT = JPG

那么当它击中的FileStream( filePath,FileMode.Open,FileAccess.Read)它会给出一个异常,指出找不到路径的一部分。

请帮助:)

回答

1

您从资产库中获取的URL不是文件路径。它是资产库中资源的URL,因此无法使用FileStream读取其数据。

如果资产是图像,你可以得到它的内容到一个NSData对象是这样的:

UIImage image = UIImage.FromImage(asset.DefaultRepresentation.GetImage()); 
NSData data = image.AsJPEG(); 
+0

如果您正在使用的UIImagePickerController可以使用非常类似的东西来获取文件(在FinishedPickingMedia覆盖): 'UIImage的图像=(UIImage的)info.ObjectForKey(新的NSString( “UIImagePickerControllerOriginalImage”));' – Luke

+0

是的,但UIImagePickerController不在这里使用。该图像从资产库中检索。 ;) –

+0

我知道 - 它更像是一个人偶然发现了这个页面寻找一个UIImagePickerController的例子;) – Luke

0

您可以使用两种不同的静态方法来加载图像。 FromImage和FromBundle。第一个是异步的。后者是同步的(当一个图像被加载时,它被iOS兑现)。两者都通向你的形象。

当您使用这些方法时,必须将属性图像设置为content属性。右键单击图像,属性 - >将构建动作设置为内容。