有时候我们需要处理图片,比如改变大小,旋转,截取等等,所以今天说一说图片处理相关的一些操作。
本文所说的方法都是写在UIImage的Category中,这样使用起来也方便;由于代码太多,这里就不贴具体实现代码了,大家可以去我的Github查看demo,效果如下:
颜色相关
1.根据颜色生成纯色图片
就是根据制定的颜色生成一张纯色的图片
1 |
+ (UIImage *)imageWithColor:(UIColor *)color; |
使用方法,比如设置UIImageView的图片为红色纯图片:
1 |
self.imageView.image = [UIImage imageWithColor:[UIColor redColor]]; |
2.取图片上某一像素的颜色
有时候我们需要获取图片上的某一点的颜色,比如画板应用选择画笔颜色的时候,其实是在一张有所有颜色的图片上点击选择实现的。
需要注意的是这里要传的参数point是相对于图片上的点。
1 |
- (UIColor *)colorAtPixel:(CGPoint)point; |
使用方法,比如我们在图片上加个tap手势,然后在响应方法里面这样写就可以了:
1 2 3 4 5 6 7 |
- (void)handleTap:(UITapGestureRecognizer *)tap { CGPoint point = [tap locationInView:tap.view]; UIImage *image = self.imageView.image; CGPoint pointInImage = CGPointMake(point.x * image.size.width / self.imageView.frame.size.width, point.y * image.size.height / self.imageView.frame.size.height); self.view.backgroundColor = [image colorAtPixel:pointInImage]; } |
3.获得灰度图
获取一张彩色图片的黑白图片
1 |
- (UIImage *)convertToGrayImage; |
使用方法:
1 |
self.imageView.image = [image convertToGrayImage]; |
旋转相关
1.纠正图片的方向
当我们需要读取相册的图片,发现相册里面的方向和展示出来的图片的方向不一样,这时候就要矫正方向了。
1 |
- (UIImage *)fixOrientation; |
使用:
1 |
self.imageView.image = [image fixOrientation]; |
2.按给定的方向旋转图片
在做图片处理工具的时候,我们可能需要旋转图片。
这个方法的参数是系统枚举UIImageOrientation。
1 2 3 4 5 6 7 8 9 10 11 12 |
typedef NS_ENUM(NSInteger, UIImageOrientation) { UIImn>(NSInteger, UIImageOrientation) { UIIm IImage-Categories" target="_blank">demo,效果如下:
颜色相关1.根据颜色生成纯色图片
使用方法,比如设置UIImageView的图片为红色纯图片:
2.取图片上某一像素的颜色
使用方法,比如我们在图片上加个tap手势,然后在响应方法里面这样写就可以了:
3.获得灰度图
使用方法:
旋转相关1.纠正图片的方向
使用:
2.按给定的方向旋转图片
|