关闭

UIImageView圆角,自适应图片宽高比例,图片拉伸,缩放比例和图片缩微图

标签: imagelayer
38477人阅读 评论(0) 收藏 举报
分类:
 /*
     设置圆角,通过layer中的cornerRadius和masksToBounds即可。
     
     自适应图片宽高比例。通过UIViewContentModeScaleAspectFit设置,注意这个UIImageView的frame就不是init中的数据了。
     
     同样的UIImage图片放入不同frame中的UIImageView就可以实现比例缩放了。只是UIImageView的大小改变了,

     
     */
    UIImage* image = [UIImage imageNamed:@"back2.jpg"];   
    UIImageView* imageView1 = [[[UIImageView alloc] initWithImage:image] autorelease];   
    imageView1.frame = CGRectMake(0, 0, 300, 200);   
    imageView1.center = CGPointMake(150, 200);
    //设置圆角
    imageView1.layer.cornerRadius = 8;  
    imageView1.layer.masksToBounds = YES;
    
    //自适应图片宽高比例
    imageView1.contentMode = UIViewContentModeScaleAspectFit;  
    [self.view addSubview:imageView1];  
    
    
    //拉伸图片
    CGFloat capWidth = image.size.width / 2;  
    CGFloat capHeight = image.size.height / 2;  
    UIImage* stretchableImage = [image stretchableImageWithLeftCapWidth:capWidth topCapHeight:capHeight];
    UIImageView* imageView3 = [[[UIImageView alloc] initWithImage:stretchableImage] autorelease];
    imageView3.frame = CGRectMake(0, 0, 300, 200);   
    imageView3.center = CGPointMake(150, 200);  
    [self.view addSubview:imageView3];
    
    //改变frame改变
    UIImageView* imageView4 = [[[UIImageView alloc] initWithImage:image] autorelease];
    imageView4.frame = CGRectMake(0, 0, 300/2, 200/2);   
    imageView4.center = CGPointMake(150, 200);  

    [self.view addSubview:imageView4];


   //缩微图
   

- (UIImage *)generatePhotoThumbnail:(UIImage *)image {

    // Create a thumbnail version of the image for the event object.

    CGSize size = image.size;

    CGSize croppedSize;

    CGFloat ratioX = 75.0;   

    CGFloat ratioY = 60.0;

    CGFloat offsetX = 0.0;

    CGFloat offsetY = 0.0;

    

    // check the size of the image, we want to make it

    // a square with sides the size of the smallest dimension

    if (size.width > size.height) {

        offsetX = (size.height - size.width) / 2;

        croppedSize = CGSizeMake(size.height, size.height);

    } else {

        offsetY = (size.width - size.height) / 2;

        croppedSize = CGSizeMake(size.width, size.width);

    }

    

    // Crop the image before resize

    CGRect clippedRect = CGRectMake(offsetX * -1, offsetY * -1, croppedSize.width, croppedSize.height);

    CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], clippedRect);

    // Done cropping

    // Resize the image

    CGRect rect = CGRectMake(0.0, 0.0, ratioX, ratioY); // 设置图片缩微图的区域((0,0),宽:75  高:60)

    UIGraphicsBeginImageContext(rect.size);

    [[UIImage imageWithCGImage:imageRef] drawInRect:rect];

    UIImage *thumbnail = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    // Done Resizing

    return thumbnail;

}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1089501次
    • 积分:9498
    • 等级:
    • 排名:第1952名
    • 原创:114篇
    • 转载:120篇
    • 译文:1篇
    • 评论:97条
    最新评论