我想将图像与背景图像混合。 好像是喷在墙上。 我怎样才能获得真实的混合。
我尝试过alpha但没有给出好的结果。
我在这个CoreImage中退出了新的东西。 请帮忙。
与此类似的东西。 http://designshack.net/wp-content/uploads/texturetricks-14.jpg
我搜索了一些但没有运气。 我甚至不知道我到底要找什么。 不确定如何谷歌。答案 0 :(得分:1)
以下是如何将两张图像混合在一起。
UIImage *bottomImage = [UIImage imageNamed:@"bottom.png"];
UIImage *image = [UIImage imageNamed:@"top.png"];
CGSize newSize = CGSizeMake(width, height);
UIGraphicsBeginImageContext( newSize );
// Use existing opacity as is
[bottomImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
// Apply supplied opacity
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:kCGBlendModeNormal alpha:0.8];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
答案 1 :(得分:0)
这种作品。我发现了smiley face image - 黑色的白色 - 和brick background。
第一项工作是创建该对的CIImage
版本。我通过CIMaskToAlpha
过滤器将笑脸传递给黑色透明:
let brick = CIImage(image: UIImage(named: "brick.jpg")!)!
let smiley = CIImage(image: UIImage(named: "smiley.jpg")!)!
.imageByApplyingFilter("CIMaskToAlpha", withInputParameters: nil)
然后将该对与CISubtractBlendMode
:
let composite = brick
.imageByApplyingFilter("CISubtractBlendMode",
withInputParameters: [kCIInputBackgroundImageKey: smiley])
最终的结果几乎就在那里:
减法混合仅适用于白色艺术品。
这是另一种方法:使用CISoftLightBlendMode
进行混合,使用伽玛来增强效果,然后使用笑脸作为遮罩将其合成到原始砖砌体上:
let composite = smiley
.imageByApplyingFilter("CISoftLightBlendMode",
withInputParameters: [kCIInputBackgroundImageKey: brick])
.imageByApplyingFilter("CIGammaAdjust",
withInputParameters: ["inputPower": 0.5])
.imageByApplyingFilter("CIBlendWithMask",
withInputParameters: [kCIInputBackgroundImageKey: brick, kCIInputMaskImageKey: smiley])
给出了:
这种方法很不错,因为你可以用伽玛能力控制油漆白度。
西蒙