iOS CIColorMatrix OC代码实现
时间: 2024-01-04 12:02:28 浏览: 166
CIColorMatrix是Core Image库中的一个类,可以通过矩阵变换来改变图像的颜色。下面是一个简单的OC代码实现:
```
//获取原始图像
CIImage *inputImage = [CIImage imageWithCGImage:image.CGImage];
//创建颜色矩阵
const CGFloat colorMatrix[] = {
1.5, 0, 0, 0, 0,
0, 1.5, 0, 0, 0,
0, 0, 1.5, 0, 0,
0, 0, 0, 1, 0
};
CIVector *colorMatrixVector = [CIVector vectorWithValues:colorMatrix count:16];
//创建CIColorMatrix滤镜
CIFilter *colorMatrixFilter = [CIFilter filterWithName:@"CIColorMatrix"];
[colorMatrixFilter setValue:inputImage forKey:kCIInputImageKey];
[colorMatrixFilter setValue:colorMatrixVector forKey:@"inputRVector"];
[colorMatrixFilter setValue:colorMatrixVector forKey:@"inputGVector"];
[colorMatrixFilter setValue:colorMatrixVector forKey:@"inputBVector"];
[colorMatrixFilter setValue:colorMatrixVector forKey:@"inputAVector"];
//获取输出图像
CIImage *outputImage = [colorMatrixFilter outputImage];
//将CIImage转换成UIImage
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef imageRef = [context createCGImage:outputImage fromRect:outputImage.extent];
UIImage *resultImage = [UIImage imageWithCGImage:imageRef];
//释放CGImageRef
CGImageRelease(imageRef);
//返回结果
return resultImage;
```
以上代码实现了将原始图像中的颜色增强1.5倍的效果。你可以根据自己的需求,修改颜色矩阵,实现不同的效果。
阅读全文