2014-03-18 54 views
2

我目前拍摄照片时使用此验证码调整大小的UIImage从的UIImagePickerController

- (void) cameraButtonSelected 
{ 
    UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
    picker.delegate = self; 
    picker.allowsEditing = YES; 
    picker.sourceType = UIImagePickerControllerSourceTypeCamera; 

    [self presentViewController:picker animated:YES completion:NULL]; 
} 

我允许用户编辑照片,但是当我使用这个委托方法由于某种原因的UIImagePickerController不会从删除鉴于用户后,按压了“使用的照片”

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 

我想知道

  1. 如何我从视图中删除后的UIImagePickerController“使用照片”按钮按下
  2. 我如何调整我刚拍摄,因为我需要一个较小的变种发送到我的服务器

任何帮助,将不胜感激的照片。

回答

4

简单,你可以在你的- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info方法这里查询有关计算器

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
UIImage *tempImage=[info objectForKey:UIImagePickerControllerEditedImage]; 

[self.dealImageView setImage:[self imageWithImage:tempImage convertToSize:CGSizeMake(200, 200)]]; 

[self dismissViewControllerAnimated:YES completion:nil]; 

} 

- (UIImage *)imageWithImage:(UIImage *)image convertToSize:(CGSize)size { 

    UIGraphicsBeginImageContext(size); 
    [image drawInRect:CGRectMake(0, 0, size.width, size.height)]; 
    UIImage *destImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return destImage; 
} 

whats-the-easiest-way-to-resize-optimize-an-image-size-with-the-iphone-sdk

resizing-and-cropping-a-uiimage

1
  1. 呼叫[self dismissModalViewControllerAnimated:YES completion:nil]地方。这是任何模态视图的常见做法。

  2. 这个问题可能比你想象的更复杂。在iOS中调整照片的方式有很多,您使用的代码将取决于您的需求。不过,您可以查看此博客文章以了解照片大小调整。这是非常全面的,我建议您在编写任何代码之前阅读它。

    http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/

    话虽这么说,这是一个非常简单的方式实现调整:

    The simplest way to resize an UIImage?

5

您可以通过在信息字典查询UIImagePickerControllerEditedImage获得图像。 并从视图中删除ImagePicker只需关闭选择器。 这是调整大小的代码。 只需用图像实例调用它

您可以使用此功能将图像缩放到特定大小

- (UIImage *) scaleImage:(UIImage*)image toSize:(CGSize)newSize { 
    //UIGraphicsBeginImageContext(newSize); 
    // In next line, pass 0.0 to use the current device's pixel scaling factor (and thus account for Retina resolution). 
    // Pass 1.0 to force exact pixel size. 
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0); 
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return newImage; 
} 

因此,最终的代码应该是这样的

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {  
    [picker dismissViewControllerAnimated:YES completion:Nil]; 
    UIImage *image = info[UIImagePickerControllerEditedImage]; 
    image = [self scaleImage:image toSize:CGSizeMake(200,200)]; // or some other size 
} 
相关问题