6

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

4

4 回答 4

12

您说您不想保存它,但如果您需要 a 的 URL UIImage,您可以轻松保存临时副本以获取所需的 URL。

对于较新的 swift 5:

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

let pngData = image.pngData();
do {
    try pngData?.write(to: imageURL);
} catch { }

现在,您可以使用 URL 将图像分享到社交媒体或您需要对其进行的任何操作。

对于以前的 Swift 版本:

// 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 { }

请参阅此处了解更多信息。

于 2016-02-06T12:10:07.983 回答
9

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

编辑 - 根据 OP 的评论,这不是所要求的信息。

于 2012-10-19T06:55:02.750 回答
4

您正在寻找的是UIImagePickerControllerReferenceURL信息字典中委托回调提供的参数。你需要做的是:

NSURL* imageURL = [info objectForKey:UIImagePickerControllerReferenceURL];

它看起来像这样:

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

您可以使用后者来引用您在UIImage*回调中获得的相同图像。

于 2013-08-31T16:30:43.377 回答
2

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

+ (id) initWithURL:(NSURL*)url
{
    [super initWithURL:url];
    self.url = url;
}
于 2015-10-14T23:39:52.390 回答