我看过很多示例,其中您使用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)
}