UIImagePickerController 中的自定义裁剪大小

Posted

技术标签:

【中文标题】UIImagePickerController 中的自定义裁剪大小【英文标题】:Custom Crop Size in UIImagePickerController 【发布时间】:2010-09-18 03:20:20 【问题描述】:

我已经为此苦苦挣扎了一段时间,因为关于该主题的文档很少。我在我的 iPhone 应用程序中有一个UIImagePickerController,我用它来选择一个图像,以便稍后应用为视图的背景。这很容易做到。不幸的是,如果用户从他们的相机胶卷中选择了一张大图像,则需要调整其大小并进行裁剪以使其看起来不错。

picker.allowsEditing 切换到YES 并启动图像编辑器很容易,但默认裁剪尺寸太小。我需要将其设置为 iPhone 屏幕的完整尺寸(旧型号为 320,新型号为 640)。你是怎样做的?我一直在谷歌搜索并查看 Apple 的文档,但我找不到任何东西。我发现的最好的解决方案是 2009 年 (http://blog.stormyprods.com/2009/06/image-picker-sample.html) 的一个稍微有问题的解决方案,几乎可以工作,但它会将图像向下移动约 20 像素。 (另外,它有点过于复杂了。)我肯定缺少一个优雅、简单的解决方案吗?

【问题讨论】:

【参考方案1】:

一年后 - 嗨,和你一样,我没有发现任何有用的东西,所以我创建了这个项目 - 适用于 iPad 的自定义大小裁剪和缩放编辑 UIImagePicker Popover。

您可以轻松地将其更改为 iphone,希望对某人有所帮助。 这是 - https://github.com/yogev77/UIImagePickerWithEditor

【讨论】:

一边拍照一边剪裁!上面的 github 项目不是上面发布的问题的解决方案。如果将图片源设置为相机,则拍照后弹出编辑裁剪框,而不是拍照时弹出编辑裁剪框。 无法解决内存问题。我想缩小我的 8M 相机的内存使用量 @Gamma-Point 您想在拍照时调整大小和裁剪?这不是这个问题所要求的【参考方案2】:

也许这应该有效:

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

【讨论】:

以上是关于UIImagePickerController 中的自定义裁剪大小的主要内容,如果未能解决你的问题,请参考以下文章

仅在横向 UIImagePickerController 中显示CameraControls

UIImagePickerController 呈现在视图中

iPhone 中 UIImagePickerController 的内存泄漏问题

裁剪中的 UIImagePickerController 状态栏问题

UIImagePickerController从拍照图库相册获取图片

iOS7 中的 UIImagePickerController