4
votes

I created a custom Camera Control with overlay ...

Now i am zooming image by using Slider by ..

imagePickerController.cameraViewTransform = CGAffineTransformScale(initialTransform, 

MainSlider.value, MainSlider.value);

where initialTransform is the initial image transformation ... MainSlider is slider , which i use to get zoom level from 1 to 4 So each time when i increase image using Slider ... I refer initialTransform and zoom accordingly Slider value ...

I am able to zoom by doing this .. But when i capture photo using

[imagePickerController takePicture];

It gives me Original Picture only .. does not give me any EditedImage ...

This original image is same as without zoom ... I want to get Image which was zoomed ... Means whatever showing in screen ...

I try to find a lot for this,,,, I know we can use GetScreenCapture() but it can be cause of rejection of app and also it lower down the image quality ...

1

1 Answers

2
votes

You need to apply the same transform to the image after it has been captured. Setting cameraViewTransform will only affect the display, as you've noticed. When you apply a uniform scaling transform (e.g. to zoom) this is a digital zoom. You are not increasing the pixel resolution. You'll get the pic back from the camera and then you can crop/scale it to the size you want when processing the image. You should do your processing on a background thread to minimize disrupting the main thread.