iOS图片的截取(OC)
来源:互联网 发布:所有云计算上市公司 编辑:程序博客网 时间:2024/06/06 02:17
如果UIImageView只需要展示图片的一部分时,需要使用图片截取
而UIImageView有contentmode属性如下:
UIViewContentModeScaleToFill
UIViewContentModeScaleAspectFit
UIViewContentModeScaleAspectFill
UIViewContentModeRedraw
UIViewContentModeCenter
UIViewContentModeTop
UIViewContentModeBottom
UIViewContentModeLeft
UIViewContentModeRight
UIViewContentModeTopLeft
UIViewContentModeTopRight
UIViewContentModeBottomLeft
UIViewContentModeBottomRight
其中UIViewContentModeScaleToFill属性将图片铺满整个ImageView会导致图片变形。UIViewContentModeScaleAspectFit保证图片比例不变,而且全部显示在ImageView中,这意味着ImageView会有部分空白。UIViewContentModeScaleAspectFill也会证图片比例不变,可能只有部分图片显示出来。而本文只要实现的是,在无论图片大小的情况下UIImageView只显示图片最上方的部分,并且保证图片不能变形
由于imageView显示的是网络图片,所以使用第三方库:SDWebImage
方法1:已验证
//其中aView是UIImageview [aView setImageWithURL:[NSURL URLWithString:str] placeholderImage:[UIImage imageNamed:@"placeHoldIcon"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) { UIImage *tempImage = [self scaleToSize:image size:CGSizeMake(width, width/image.size.width*image.size.height)]; aView.image = [UIImage imageWithCGImage:CGImageCreateWithImageInRect([tempImage CGImage], CGRectMake(0, 0, image.size.width, height))];//此方法可以截取图片的任意位置 }];//将图片压缩成一定的比例- (UIImage *)scaleToSize:(UIImage *)image size:(CGSize)size{ UIGraphicsBeginImageContext(size); [image drawInRect:CGRectMake(0,0, size.width, size.height)]; UIImage* scaledImage =UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return scaledImage;}方法2:未验证
在写这篇文章的时候突然看到UIImageView的contentmode属性有:UIViewContentModeTop想到了下面的方法,不需要使用图片的裁剪,但是未经尝试,不知道是否可行
//其中aView是UIImageview [aView setImageWithURL:[NSURL URLWithString:str] placeholderImage:[UIImage imageNamed:@"placeHoldIcon"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) { aView.image = [self scaleToSize:image size:CGSizeMake(width, width/image.size.width*image.size.height)]; aView.contentmode = UIViewContentModeTop; }];//将图片压缩成一定的比例- (UIImage *)scaleToSize:(UIImage *)image size:(CGSize)size{ UIGraphicsBeginImageContext(size); [image drawInRect:CGRectMake(0,0, size.width, size.height)]; UIImage* scaledImage =UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return scaledImage;}
0 0
- iOS图片的截取(OC)
- ios 图片的截取
- ios 图片的截取
- iOS点击事件的截取(OC)
- iOS截取图片的一部分
- iOS中截取屏幕的图片
- iOS截取图片
- IOS 截取任意图片
- iOS view截取图片
- ios图片截取
- iOS 截取原型图片
- iOS 图片截取
- 十一 iOS 图片截取
- IOS 图片 截取 和 合并
- iOS截取正六边形图片
- iOS 截取view生成图片
- iOS 截取屏幕和获取图片的一部分
- iOS 如何截取超出屏幕区域的图片
- Java并发教程(Oracle官方资料)
- Hadoop之——执行start-all.sh时namenode没有启动
- cxf 配置和代码小例子
- JAVASE_集合框架
- Hadoop-2.5.1集群环境搭建
- iOS图片的截取(OC)
- ‘东方之星’之倾覆的原因分析(仅供参考)
- Java NIO 系列教程
- 6.3日日志记录
- cocos2dx 3.6 mac os 环境配置
- bzoj 2243 树链剖分 染色
- HDU ACM 1086 You can Solve a Geometry Problem too->判断两线段是否相交
- 使用Unity3D编写ARPG游戏——角色属性的定义与实现(一)
- NGS项目一:RNA-Seq数据的Workflow