美文网首页
iOS图片裁剪

iOS图片裁剪

作者: coder_lynx | 来源:发表于2016-03-03 18:09 被阅读0次

平时开发的时候经常会遇到需要将图片进行等比缩放的需求,但是本身图片的宽高比与需要等比缩放的宽高比不一致的时候就不方便进行缩放了。

于是我们可以通过对图片进行裁剪来实现修改宽高比:

+ (UIImage *)cutImage:(UIImage*)image
{
    CGSize newSize;
    CGImageRef imageRef = nil;
    
    UIImageOrientation imageOrientation;
    if (image.size.width > image.size.height) {
        imageOrientation = UIImageOrientationRight;
        if ((image.size.width / image.size.height) < (SCREEN_HEIGHT / SCREEN_WIDTH)) {
            newSize.width = image.size.width;
            newSize.height = image.size.width * SCREEN_WIDTH / SCREEN_HEIGHT;
            
            imageRef = CGImageCreateWithImageInRect([image CGImage], CGRectMake(0, fabs(image.size.height - newSize.height) / 2, newSize.width, newSize.height));
            
        } else {
            newSize.height = image.size.height;
            newSize.width = image.size.height * SCREEN_HEIGHT / SCREEN_WIDTH;
            
            imageRef = CGImageCreateWithImageInRect([image CGImage], CGRectMake(fabs(image.size.width - newSize.width) / 2, 0, newSize.width, newSize.height));
        }
    } else {
        imageOrientation = UIImageOrientationUp;
        if ((image.size.width / image.size.height) < (SCREEN_WIDTH / SCREEN_HEIGHT)) {
            newSize.width = image.size.width;
            newSize.height = image.size.width * SCREEN_HEIGHT / SCREEN_WIDTH;
            
            imageRef = CGImageCreateWithImageInRect([image CGImage], CGRectMake(0, fabs(image.size.height - newSize.height) / 2, newSize.width, newSize.height));
            
        } else {
            newSize.height = image.size.height;
            newSize.width = image.size.height * SCREEN_WIDTH / SCREEN_HEIGHT;
            
            imageRef = CGImageCreateWithImageInRect([image CGImage], CGRectMake(fabs(image.size.width - newSize.width) / 2, 0, newSize.width, newSize.height));
        }
    }
    return [UIImage imageWithCGImage:imageRef scale:1.0 orientation:imageOrientation];
}

以上代码将图片分为横图和竖图分别进行了处理。

相关文章

  • 【iOS】图片裁剪

    【iOS】图片裁剪 Demo地址

  • [iOS] 图像处理:一种高效裁剪图片圆角的算法

    [iOS] 图像处理:一种高效裁剪图片圆角的算法 [iOS] 图像处理:一种高效裁剪图片圆角的算法

  • 【iOS】图片裁剪

    ####【iOS】图片裁剪 UIImage *imageTop=[UIImage imageNamed:@"111...

  • iOS 头像裁剪、图片裁剪、微信头像裁剪

    iOS 头像裁剪、图片裁剪、微信头像裁剪 关于图片裁剪,基本上所有涉及到c端用户带基本信息的App基本都会用到,使...

  • iOS裁剪图片

    工作中突然用到了压缩图片展示缩略图被压扁和拉伸的现象,于是先按比例压缩然后再进行裁剪。类似UIView中的UIVi...

  • iOS 图片裁剪

    1、开启位图上下文 2、获取上下文 3、对位图上下文添加裁剪的范围,并对齐裁剪 4、从位图上下文中获取已经裁剪的图...

  • iOS 图片裁剪

    写在前面:实际工作中,有时候需要按照需求将图片裁剪成圆形,或者你需要的形状。这里以圆形为例。 核心:void CG...

  • iOS图片裁剪

    在iOS开发过程中,经常会遇到上传图片的需求,有时获取到图片之后需要裁剪一下,而系统提供的方法只能裁剪出一个正方形...

  • iOS 图片裁剪

    图片裁剪根据需求自行设置newSize如果是等比例裁剪(宽高比不变的情况下),可将从相册或者相机拿到的图片获取im...

  • iOS 图片裁剪

网友评论

      本文标题:iOS图片裁剪

      本文链接:https://www.haomeiwen.com/subject/ujqokttx.html