我看过很多示例,其中您使用UIImage输出图像。我希望将输出设置为UIWebView,因为我想在图像周围添加一些其他HTML格式。

我想让照片库返回存储在iOS设备上的图像的相对路径,以便将其放置在“img” HTML标记的“src”属性中。

这可能吗?

编辑1

我不得不根据自己的需要修改代码,但这似乎行不通。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    //Get Image URL from Library
    NSURL *urlPath = [info valueForKey:UIImagePickerControllerReferenceURL];
    NSString *urlString = [urlPath absoluteString];
    NSLog(urlString);

    NSURL *root = [[NSBundle mainBundle] bundleURL];
    NSString *html;
    html = @"<img src='";
    html = [html stringByAppendingString:urlString];
    html = [html stringByAppendingString:@"' />"];
    [MemeCanvas loadHTMLString:html baseURL:root];

    [picker dismissViewControllerAnimated:YES completion:^{}];
}

我可以记录 Assets 库URL,但似乎没有在UIWebView上显示图像。我不知道将baseURL更改为什么。

任何帮助表示赞赏。

编辑2

我将UIImagePickerControllerReferenceURL更改为UIImagePickerControllerMediaURL,现在它崩溃了,因为当我将其附加到带有stringByAppendingString:urlString的字符串中时,它不喜欢它

它给了我错误:



你知道是什么原因造成的吗?

最佳答案

[已更新为快速4 ]
您可以使用UIImagePickerController委托(delegate)来选择要编辑的图像(或url)。

您可以这样做:

let pickerController = UIImagePickerController()
pickerController.sourceType = .photoLibrary
pickerController.delegate = self
self.navigationController?.present(pickerController, animated: true, completion: {
})

在委托(delegate)实现中,您可以使用图像的路径或图像本身:
// This method is called when an image has been chosen from the library or taken from the camera.

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
   //You can retrieve the actual UIImage
   let image = info[UIImagePickerControllerOriginalImage] as? UIImage
   //Or you can get the image url from AssetsLibrary
   let path = info[UIImagePickerControllerReferenceURL] as? URL
   picker.dismiss(animated: true, completion: nil)
}

07-24 09:44
查看更多