在iPhone App中,
我想在使用iphone相机拍摄照片的同时在我的iphone应用中实现数码变焦。
我该怎么做?
答案 0 :(得分:2)
UIImagePickerController
有一个cameraViewTransform
,您可以在用户缩放时缩放相机视图。拍摄完图像后,您可以根据缩放设置裁剪并调整图像大小。
为此,您可以创建具有所需大小的新图形上下文,并将从图像选择器获得的图像绘制到该上下文中。
答案 1 :(得分:1)
一旦你拍摄了图像,我认为你可以使用缩放和裁剪图像到你想要的大小。
但图像的清晰度可能与原始图像不同。
- (UIImage *)image
{
if (cachedImage == nil) {
// HERE YOU CAN GIVE THE FRAME YOU WANT THE SIZE OF THE IMAGE TO BE.
CGRect imageFrame = CGRectMake(0, 0, 400, 300);
UIView *imageView = [[UIView alloc] initWithFrame:imageFrame];
[imageView setOpaque:YES];
[imageView setUserInteractionEnabled:NO];
[self renderInView:imageView withTheme:nil];
UIGraphicsBeginImageContext(imageView.bounds.size);
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextGetCTM(c);
CGContextScaleCTM(c, 1, -1);
CGContextTranslateCTM(c, 0, -imageView.bounds.size.height);
[imageView.layer renderInContext:c];
cachedImage = [UIGraphicsGetImageFromCurrentImageContext() retain];
// rescale image
UIImage* bigImage = UIGraphicsGetImageFromCurrentImageContext();
CGImageRef scaledImage = [self newCGImageFromImage:[bigImage CGImage] scaledToSize:CGSizeMake(100.0f, 75.0f)];
cachedImage = [[UIImage imageWithCGImage:scaledImage] retain];
CGImageRelease(scaledImage);
UIGraphicsEndImageContext();
[imageView release];
}
return cachedImage;
}
希望这会对你有所帮助。