0
在一个类中,我有一个包含五个UIImage(例如tiangle.png和circle.png)的数组。用掩码更改UIImage的颜色并用彩色图像替换该图像
在当前的课程中,我有一个颜色列表。点击UIImage后,点击一种颜色后,可以更改当前UIImage的颜色。 这将通过掩盖图像,设置其颜色并用所选颜色中的新UIImage替换旧UIImage来实现。
但有一些错误的方法,它应该改变颜色:
- (void) changeColor: (UITapGestureRecognizer*) gestureRecognizer{
UIGraphicsBeginImageContext(test.newView.image.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGPoint loc = [gestureRecognizer locationInView:self.view];
CGContextSetFillColorWithColor(context, [[self colorOfPoint:loc]CGColor]);
CGContextTranslateCTM(context, 0, test.newView.image.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGRect rect = CGRectMake(test.newView.frame.origin.x,test.newView.frame.origin.x, test.newView.image.size.width,test.newView.image.size.height);
CGContextSetBlendMode(context, kCGBlendModeColorBurn);
CGContextClipToMask(context, rect, test.newView.image.CGImage);
CGContextAddRect(context, rect);
CGContextDrawPath(context, kCGPathFill);
CGImageRef imgRef = CGBitmapContextCreateImage(context);
UIImage* img = [UIImage imageWithCGImage:imgRef];
CGImageRelease(imgRef);
CGContextRelease(context);
UIGraphicsEndImageContext();
test.newView.image = img;
}
正在发生的事情的唯一的事情就是点击UIImage的是会得到不透明。
持有UIImage的imageview在这种情况下不会被删除。
是的,谢谢,这是正确的,然后将其值传递给UIImageView的实际图像:newView.image = image; – Studie