Ahm*_* Z. 2 core-graphics uiimageview uiimage ios
我有一个看起来像这样的图像......
我必须要做的是我必须改变这个图像的下半部分的颜色..就像这一个..
我尝试过使用CAGradientLayer
,Masking
但没有运气得到结果..
任何帮助都会很棒..在此先感谢..
更新1
这是他们在这段代码之后得到的东西.我需要补充的一件事是在使用之前调整图像大小.
更新2
你对我提出了一些很好的挑战,但是你走了:
返回图像的方法,下半部分用一些颜色着色
- (UIImage *)image:(UIImage *)image withBottomHalfOverlayColor:(UIColor *)color
{
CGRect rect = CGRectMake(0.f, 0.f, image.size.width, image.size.height);
if (UIGraphicsBeginImageContextWithOptions) {
CGFloat imageScale = 1.f;
if ([self respondsToSelector:@selector(scale)])
imageScale = image.scale;
UIGraphicsBeginImageContextWithOptions(image.size, NO, imageScale);
}
else {
UIGraphicsBeginImageContext(image.size);
}
[image drawInRect:rect];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetBlendMode(context, kCGBlendModeSourceIn);
CGContextSetFillColorWithColor(context, color.CGColor);
CGRect rectToFill = CGRectMake(0.f, image.size.height*0.5f, image.size.width, image.size.height*0.5f);
CGContextFillRect(context, rectToFill);
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Run Code Online (Sandbox Code Playgroud)
使用示例:
UIImage *image = [UIImage imageNamed:@"q.png"];
image = [self image:image withBottomHalfOverlayColor:[UIColor cyanColor]];
self.imageView.image = image;
Run Code Online (Sandbox Code Playgroud)
我的结果:
在 Swift 4.一些变化
func withBottomHalfOverlayColor(myImage: UIImage, color: UIColor) -> UIImage
{
let rect = CGRect(x: 0, y: 0, width: myImage.size.width, height: myImage.size.height)
UIGraphicsBeginImageContextWithOptions(myImage.size, false, myImage.scale)
myImage.draw(in: rect)
let context = UIGraphicsGetCurrentContext()!
context.setBlendMode(CGBlendMode.sourceIn)
context.setFillColor(color.cgColor)
let rectToFill = CGRect(x: 0, y: myImage.size.height*0.5, width: myImage.size.width, height: myImage.size.height*0.5)
context.fill(rectToFill)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage!
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1220 次 |
最近记录: |