How to get image from camera roll by name/identifier in Swift - ios

in my app I'm taking a picture and save it in camera roll by:
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
Later in another screen, I want to display it to the user.
As I don't want to store the whole picture, is there any possibility to load an image from camera roll using the image name or an identifier? (And of course set the image name or saving the identifier when saving the picture)
Any help would be appreciated!

As per my knowledge it is not possible to load an image directly from camera roll using name/identifier.
For your requirement it is better to save your image with a name in document directory instead of saving it in camera roll, then load it with the same name where ever you want to use it.
For sample code refer #Dharmesh Kheni's answer in below link.
Get image name UIImagePickerController in Swift

Related

Adding metadata to an image in an iOS app

I am creating an app to take an image and save the image to the camera roll but also adding a string of data to the metadata of the image at the same time and this string would mostly be a combination of user entered data in a couple of text fields. So I pick up an image using the camera of the iphone which is accessed by the UIImagePicker. Now I want to save this and edit the metadata before saving. I have looked up a solution but could not find a proper one for swift.

Metadata on UIImage not using the camera roll - Swift

Simply, I am trying to save/add GPS metadata into a UIImage which is then stored in a custom folder. I do not want this image to appear in the camera roll.
It appears that the "Photos Framework" won't help as this requires the image being added to the camera roll.
Other code I have seen online uses a lot of unmanaged code and so, this doesn't feel like a very "swift" way of doing things.
Does anyone have any resources that shows how to modify the metadata of a UIImage? or am I looking at this incorrectly.
Thanks

PHAssetRequestChange deleteAsset does not delete Photo Stream asset as well

In my app, the user can take a photo with a camera, and it will save the image to the camera roll via:
PHAssetChangeRequest creationRequestForAssetFromImage
I retrieve the PHAsset from this and keep a handle on it. Later on, the user is prompted to decide whether or not they want to delete the photo they took. Using
the handle on the PHAsset, I delete the PHAsset using:
[PHAssetChangeRequest deleteAssets:#[asset]];
I get the prompt "Allow 'MYAPP' to delete this photo?". And if you press delete, it deletes it from the camera roll.
However, if the user has Photo Stream enabled, the photo remains in the Photo Stream. Is there anything we can do to remove the Photo Stream image as well?
Hmm, I'm not sure offhand if Apple will allow us to do that or not, check out this post How to remove photos from iOS camera roll? - Maybe using their suggestion of creating your own camera and saving the file locally instead of in the camera roll so that you don't have to worry about the Photo Stream, then again we don't know the main purpose of your app so it's quite possible you want the photo to be in the Camera Roll.

How to preview automatically edited image after picking with UIImagePickerController

I my app users can take and save photos, but before I save them on disk, I have to compress and downscale them. Is it possible to show automatically edited image in a standard preview screen right after user captured the image with UIImagePickerController? Or should I build my own camera with AVFoundation? If so, could anyone suggest some lightweight opensource camera for my purposes?
You're going to have to build your own solution with AVCaptureSession, which is not hard, since you more than likely will want to keep the original photo in a temp file, compress it, show it on a custom view with an image view in it and then ask the user if they want to save it or not.
Here's Apple's Docs but there are plenty tutorials on how to do this

ALAssest of an Image taken from Camera without saving it

Hi I was wondering if theres a way to extract ALAsset of an image taken from Camera but without saving it...
Ive come across various example that used writeImageToSavedPhotosAlbum and then fetched the ALAssest, but i dont deem it necessary to save the image in the camera roll, was just wondering if this could be done otherwise
No ALAssest exists until the image has been successfully saved to the image library. Until then you just have a UIImage that has come from the picker. There is no mandate that the image needs to be saved into the library and any decision about whether you want to save the image should be based on what the app tells the user and if the user would naturally expect to find the image in the library after taking / saving it in the app.

Resources