使图片与背景融为一体
原始图片 + 显示时的图片
例子1
例子2
例子3
作为mask用的图:
原理:
1. 一个mask用来只显示图片边缘
2. 取图片平均颜色并给这个mask赋值
3. 将背景色设置成平均色
4. 将要显示的图片放置在mask的下面
// 获取显示图片
UIImage *showImage = [UIImage imageNamed:@"6"];
// 获取遮罩图片
UIImage *maskImage = [UIImage imageNamed:@"mask"];
// 显示的图片
UIImageView *imageView = \
[[UIImageView alloc] initWithFrame:(CGRect){CGPointZero, showImage.size}];
imageView.image = showImage;
imageView.center = self.view.center;
[self.view addSubview:imageView];
// 带透明像素PNG图片
UIImage *png = [maskImage blurImageWithRadius:20];
// 将透明像素PNG图片转换为遮罩用mask
CALayer *maskLayer = [CALayer layer];
maskLayer.contents = (__bridge id)(png.CGImage);
maskLayer.frame = (CGRect){CGPointZero, showImage.size};
// 使用遮罩mask
CALayer *showLayer = [CALayer layer];
showLayer.frame = (CGRect){CGPointZero, showImage.size};
showLayer.mask = maskLayer;
showLayer.backgroundColor = [showImage averageColor].CGColor; // 取图片平均颜色
showLayer.position = self.view.center;
// 设置背景色
self.view.backgroundColor = [showImage averageColor]; // 取图片平均颜色
[self.view.layer addSublayer:showLayer];