2012-10-19 110 views
5

如何从UIImage获取URL?我从iPhone库中获得了一张图片,并调整了它的大小,我不想保存新的图片,但我想获取它的URL。如何从UIImage获取URL

+0

你可能需要扩展一下你想要的东西,你是在寻求一个新的图像路径,图像的旧路径或其他东西。唯一可能与UIImage关联的URL是一个文件系统url,它指向它在磁盘上的存在位置。 – Bergasms

+0

我想要新图像的url –

回答

6

UIImage没有URL或文件信息。它只是表示像素颜色数据的字节集合。如果您从UIImagePicker获取UIImage,则可以将该URL获取到资源库中的原始图像。但是您必须在图像选择器委托方法中获取此URL,并且必须跟踪它与UIImage对象分开。

编辑 - 基于OP的评论,这不是被请求的信息。

+1

所以如果我想要得到的网址,那么我必须将它保存在某个地方,然后我可以得到的网址? –

+0

你的问题仍然非常含糊。您正在讨论已编辑或调整大小的图像的网址。如果你只是用UIImage来做这件事,那么这张新图片没有URL。你只是在内存中有一张图片。 – rmaddy

+0

如果图像存在,那么必须有一些相关的路径,因此url .. –

4

您正在查找的是UIImagePickerControllerReferenceURL参数,由info字典中的委托回调提供。你需要做的是:

NSURL* imageURL = [info objectForKey:UIImagePickerControllerReferenceURL]; 

而且它会是这个样子:

assets-library://asset/asset.JPG?id=SOME_GUUID&ext=JPG 

您可以使用此后者指回你在回调UIImage*得到了相同的图像。

0

你可以继承UIImage并创建一个覆盖initWithURL:将URL保存到一个创建的属性中......类似这样的东西。

​​
9

你说你不想保存它,但如果你需要一个UIImage一个网址,你可以轻松地保存一个临时副本来获得您需要的URL。

// Create a URL in the /tmp directory 
guard let imageURL = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("TempImage.png") else { 
    return 
} 

// save image to URL 
do { 
    try UIImagePNGRepresentation(myImage)?.write(to: imageURL) 
} catch { } 

现在,您可以使用该网址将图片分享到社交媒体或任何您需要使用它的地方。

查看here了解更多信息。

+1

LIFE SAVER !!!!! – Pentarex