색상 참조로 이미지에 색조를 지정하고 싶습니다. 결과는 Photoshop의 Multiply 블렌딩 모드와 비슷해야합니다. 여기서 흰색 은 색조 로 대체됩니다 .
계속해서 색상 값을 변경하겠습니다.
후속 조치 : ImageView의 drawRect : 메서드에이 작업을 수행하는 코드를 넣을 것입니다.
항상 그렇듯이 코드 스 니펫 은 링크가 아닌 내 이해에 크게 도움이 될 것입니다.
업데이트 : Ramin이 제안한 코드로 UIImageView를 서브 클래 싱합니다 .
내 뷰 컨트롤러의 viewDidLoad :에 넣습니다.
[self.lena setImage:[UIImage imageNamed:kImageName]];
[self.lena setOverlayColor:[UIColor blueColor]];
[super viewDidLoad];
이미지는 보이지만 착색되지 않습니다. 또한 다른 이미지를로드하고, IB에서 이미지를 설정하고, 뷰 컨트롤러에서 setNeedsDisplay : 호출을 시도했습니다.
업데이트 : drawRect : 호출되지 않습니다.
최종 업데이트 : 라민의 코드를 테스트 할 수 있도록 imageView가 제대로 설정된 오래된 프로젝트를 찾았고 매력처럼 작동합니다!
최종, 최종 업데이트 :
Core Graphics에 대해 방금 배우는 사람들을 위해 작동 할 수있는 가장 간단한 것이 여기 있습니다.
서브 클래 싱 된 UIView에서 :
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColor(context, CGColorGetComponents([UIColor colorWithRed:0.5 green:0.5 blue:0 alpha:1].CGColor)); // don't make color too saturated
CGContextFillRect(context, rect); // draw base
[[UIImage imageNamed:@"someImage.png"] drawInRect: rect blendMode:kCGBlendModeOverlay alpha:1.0]; // draw image
}