iOS开发OC-开发案例收集

UIImageView和UIImage的处理

2019-04-08  本文已影响0人  追逐_chase
timg.gif

UIImageView的创建方式

图片的加载方式

UIImageView的 contentMode(内容模式)属性

    下面的3个属性是拉伸和压缩图片的比例
    
    按比例缩放填充 有可能会失真
    UIViewContentModeScaleToFill, 
    
    按比例缩放,根据宽高适应,不会失真      
    UIViewContentModeScaleAspectFit,
    
    按比例缩放填充,宽和高只要一个因素fill适应,其他的就在考虑
    可能只显示一部分        
    UIViewContentModeScaleAspectFill,   
    
    重新绘制 图片
    UIViewContentModeRedraw, 
    
    下面的属性 不会被拉伸         
    UIViewContentModeCenter, 居中显示        
    UIViewContentModeTop, 靠上显示
    UIViewContentModeBottom,
    UIViewContentModeLeft,
    UIViewContentModeRight,
    UIViewContentModeTopLeft,
    UIViewContentModeTopRight,
    UIViewContentModeBottomLeft,
    UIViewContentModeBottomRight

UIImageView的帧动画

 //这个数组容器,只能存放 UIImage对象
  NSMutableArray <UIImage *> *imagesArray  = [NSMutableArray array];
  for (int i = 0; i < 10; i++) {
        NSString *imageName = [NSString stringWithFormat:@"xxxx_%d", i + 1];
        UIImage *image = [UIImage imageNamed:imageName];
        [imagesArray addObject:image];
    }
    //设置动画数组资源
    self.imageView.animationImages = imagesArray;
    //设置播放次数 无线播放
    self.imageView.animationRepeatCount = 0;
    //设置延迟的时间
    self.imageView.animationDuration = 1;
    // 开始动画
    [self.imageView startAnimating];
    
    //停止动画
    //[self.imageView stopAnimating];

注意:上面说到UIImageView的加载图片方式的时候有2种

UIImage

创建方式

//直接加载图片
UIImage *image = [UIImage imageNamed:@""];
//加载二进制数据
UIImage *imageDa = [UIImage imageWithData:@"二进制"];
//加载二进制数据 并有缩放
UIImage *imageData = [UIImage imageWithData:@"二进制" scale:@"缩放小数"];
//通过路径加载
 UIImage *image = [UIImage imageWithContentsOfFile:@"文件路径"];

图片的压缩的2种方式

1.系统提供的压缩方式

 UIImage *image = [UIImage imageWithContentsOfFile:@"xx.pne"];
 //png压缩
 NSData *pngData = UIImagePNGRepresentation(image);
 //jpg压缩,有压缩系数 常用
 NSData *jpgData = UIImageJPEGRepresentation(image, 1);
 

2.上下文压缩图片


- (UIImage *)scaleImageWithImage:(UIImage *)image withScale:(CGFloat)scale{
    //创建上下文
    CGSize imageSize = CGSizeMake(image.size.width *scale, image.size.height * scale);
    UIGraphicsBeginImageContext(imageSize);
    //重新w绘制
    [image drawInRect:CGRectMake(0, 0, image.size.width *scale, image.size.height *scale)];
    //获取到绘制的图片
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    //结束上下文
     UIGraphicsEndImageContext();
    return newImage;
}


上一篇 下一篇

猜你喜欢

热点阅读