zoukankan      html  css  js  c++  java
  • UIImageView圆角,自适应图片宽高比例,图片拉伸,缩放比例和图片缩微图

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

    }

  • 相关阅读:
    Loki 初体验
    柠檬研究院及第一期活动预告
    Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控
    聊聊AspectCore动态代理中的拦截器
    使用AspectCore动态代理
    AspectCore中的IoC容器和依赖注入
    AspectCore.Extension.Reflection : .NET Core反射扩展库
    Asp.Net Core轻量级Aop解决方案:AspectCore
    [精品书单] C#/.NET 学习之路——从入门到放弃
    创建vue项目
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/5133584.html
Copyright © 2011-2022 走看看