UIImage의 색상/색조를 변경하는 방법을 찾으려고합니다. iOS5에 많은 이미지 필터가 있다는 것을 알았지 만, CIColorMatrix
필터의 올바른 사용에 대한 문서를 찾는 데 어려움이 있습니다.iOS5에서 CIColorMatrix를 사용하는 방법?
-(void)doCIColorMatrixFilter
{
//does not work, returns nil image
CIImage* inputImage = [CIImage imageWithCGImage:[[UIImage imageNamed:@"button.jpg"]CGImage]];
CIFilter *myFilter;
NSDictionary *myFilterAttributes;
myFilter = [CIFilter filterWithName:@"CIColorMatrix"];
[myFilter setDefaults];
myFilterAttributes = [myFilter attributes];
[myFilterAttributes setValue:inputImage forKey:@"inputImage"];
//How to set up attributes?
CIContext *context = [CIContext contextWithOptions:nil];
CIImage *ciimage = [myFilter outputImage];
CGImageRef cgimg = [context createCGImage:ciimage fromRect:[ciimage extent]];
UIImage *uimage = [UIImage imageWithCGImage:cgimg scale:1.0f orientation:UIImageOrientationUp];
[imageView setImage:uimage];
CGImageRelease(cgimg);
}
어떤 코드가이 필터의 사전에 포함됩니까? 1
에서
우리가를 만듭니다
위대한 답변입니다. # 1 쪽지가있는 쪽지. 때때로 ciimage는 이미지 유형 때문에 nil입니다. 때로는 cgimage를 생성 한 다음 그 이미지를 ciimage로 만드는 것이 필요합니다. – Aggressor
@Aggressor ciimage에 nil을 반환하는 이미지 유형의 예를 들어 주시겠습니까? 답변 주소를 편집하고 싶습니다 :) – nacho4d
3을 설명하는 기사가 있습니다. https://medium.com/@ranleung/uiimage-vs-ciimage-vs-cgimage-3db9d8b83d94.알려진 유형 (예 : .jpg)으로 작업하는 경우 CIImage를 사용한다는 것을 항상 알고 있다면 안전합니다. 그러나 응용 프로그램에서 여러 형식의 파일 형식을 사용하는 경우 CIImage가 nil 일 때 대신 CGImage를 가져 와서 CIImage로 변환해야합니다 (즉, 컨텍스트에서 다시 그릴 수 있고 UIImage-> CIImage를 가져올 수 있음)) – Aggressor