如何将任意大小的图像裁剪到一定的尺寸?

时间:2014-06-16 08:51:30

标签: ios iphone objective-c uiimageview crop

我的要求是当我处理任何尺寸的图像时,应该将图像自动裁剪为320x240的尺寸而不进行任何拉伸。如何为此功能编写裁剪方法?我的意思是我有各种尺寸的图像列表,如果我从这个列表中选择一个图像,它将自动转换为尺寸320x 240.我怎样才能实现它。请告诉我。

现在我使用以下代码: http://www.abdus.me/ios-programming-tips/resize-image-in-ios/

但是得到的图像的质量不好,它变得模糊。你能告诉我怎样才能克服这个问题。

1 个答案:

答案 0 :(得分:2)

对于裁剪 - 图像部分:

- (UIImage*) getSubImageFrom: (UIImage*) img WithRect: (CGRect) rect {

    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();

    // translated rectangle for drawing sub image
    CGRect drawRect = CGRectMake(-rect.origin.x, -rect.origin.y, img.size.width, img.size.height);

    // clip to the bounds of the image context
    // not strictly necessary as it will get clipped anyway?
    CGContextClipToRect(context, CGRectMake(0, 0, rect.size.width, rect.size.height));

    // draw image
    [img drawInRect:drawRect];

    // grab image
    UIImage* subImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return subImage;
}

调整大小 -

将UIImageView的框架放入320x240,然后放入imageView.contentMode = UIViewContentModeScaleAspectFit;