2011-09-26 23 views

回答

2

UIImagePickerController有一個cameraViewTransform,用戶可以在用戶放大時縮放攝像機視圖。圖像被拍攝後,您可以根據變焦設置進行剪裁和調整大小。

爲此,您將創建一個具有所需大小的新圖形上下文,並將從圖像選擇器獲取的圖像繪製到該上下文中。

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; 
} 

希望這可以幫助你。