I have a UIScrollView, containing a UIImage view, which contains an image from the camera. Once the user has finished scrolling/zooming etc, I want to save just the visible portion of the image.
Sounds simple really. But can I do it? Nope.
I've tried all combinations of multiplying content offsets and scroll view bounds by the scaling factor and who knows what else into a CGRect that I use to extract theimage using CGImageCreateWithImageInRect, but I never get the right image.
Sample code:
CGRect imageFrame = CGRectMake(scrollView.contentOffset.x,
scrollView.contentOffset.y,
scrollView.bounds.size.width * scrollViewZoom,
scrollView.bounds.size.height * scrollViewZoom);
CGImageRef ref = CGImageCreateWithImageInRect([imageView.image CGImage], imageFrame);
// draw this image onto another
myImage = [UIImage imageWithCGImage:ref];
Help! Does anyone have any working example code, or at least a nudge in the right direction to help a newbie developer on his way.
Many thanks in advance!
Sounds simple really. But can I do it? Nope.
I've tried all combinations of multiplying content offsets and scroll view bounds by the scaling factor and who knows what else into a CGRect that I use to extract theimage using CGImageCreateWithImageInRect, but I never get the right image.
Sample code:
CGRect imageFrame = CGRectMake(scrollView.contentOffset.x,
scrollView.contentOffset.y,
scrollView.bounds.size.width * scrollViewZoom,
scrollView.bounds.size.height * scrollViewZoom);
CGImageRef ref = CGImageCreateWithImageInRect([imageView.image CGImage], imageFrame);
// draw this image onto another
myImage = [UIImage imageWithCGImage:ref];
Help! Does anyone have any working example code, or at least a nudge in the right direction to help a newbie developer on his way.
Many thanks in advance!