【问题标题】:Size of UIImage after UIImagePickerControllerUIImagePickerController 后 UIImage 的大小
【发布时间】:2014-07-21 02:17:02
【问题描述】:

我试图弄清楚使用UIImagePickerController 拍摄照片后 UIImage 的大小以及如何正确缩放拍摄的图像。如果我想让相机每次都拍一张 100pt x 100pt 的照片,我该怎么做呢?

我咨询了documentationUIImagePickerController,但它没有任何关于图像大小的信息

【问题讨论】:

  • UIImage 有一个 size 属性。
  • 您可以在照片被挑选/拍摄到您想要的CGSize 后简单地重新绘制图像。
  • @troop231 不需要扭曲图像吗?
  • 完全不是我的朋友。也会是这样的:CGSize newSize = CGSizeMake(100.0, 100.0);
  • 做一些搜索。现有很多关于缩放图像的讨论。

标签: ios objective-c uiimage uiimagepickercontroller


【解决方案1】:

我相信这就是你所追求的。如果我错了,请告诉我。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
    CGFloat var1;
    CGFloat var2;

    if (image.size.width > image.size.height){
        // Landscape
        CGFloat aspect = image.size.width / image.size.height;
        CGFloat height = ceilf(100.0/aspect);
        var1 = 100.0;
        var2 = height;
    }
    else if (image.size.height > image.size.width){
        // Portrait
        CGFloat aspect = image.size.height / image.size.width;
        CGFloat width = ceilf(100.0/aspect);
        var1 = width;
        var2 = 100.0;
    }
    else{
        // Square
        var1 = 100.0;
        var2 = 100.0;
    }

    UIGraphicsBeginImageContextWithOptions(CGSizeMake(var1, var2), NO, 0.0);
    [image drawInRect:CGRectMake(0, 0, var1, var2)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    相关资源
    最近更新 更多