博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UIImageView圆角,自适应图片宽高比例,图片拉伸,缩放比例和图片缩微图
阅读量:6249 次
发布时间:2019-06-22

本文共 2405 字,大约阅读时间需要 8 分钟。

 /*

     设置圆角,通过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;

}

转载地址:http://roria.baihongyu.com/

你可能感兴趣的文章
七年软件测试历程,回过头来,最能帮助我的还是这些.....
查看>>
yum 安装nginx
查看>>
前端(js+JQuery非空校验)
查看>>
[Android] ImageView.ScaleType设置图解
查看>>
银行卡卡号验证
查看>>
VS的内存断点
查看>>
Jenkins实战演练之Linux系统节点管理
查看>>
为什么init脚本需要lock文件
查看>>
利用python的zmail模块发送邮件
查看>>
DIY-希捷硬盘固件问题的解决方法
查看>>
有关电脑不能上网的检查方法
查看>>
我的友情链接
查看>>
Spring5最新源码导入Eclipse详解
查看>>
Linux 基础学习
查看>>
我的友情链接
查看>>
js之拖动节点放置链路上
查看>>
window server 2008 R2 standard ×××配置
查看>>
jdbc基础知识
查看>>
XDebug 调试 php
查看>>
百度地图自定义一个布局Mark
查看>>