如何以实用方式实现下面的图像 - 这意味着数字可以在运行时更改,甚至可以用电影替换?
答案 0 :(得分:1)
只需在你的东西上添加一个模糊的UIView。
例如...制作所需视图大小的UIImage,使用CIFilter进行模糊,然后将其添加到视图中。它应达到预期的效果。
答案 1 :(得分:1)
This通常是同一个问题,并且有很多方法可以回答。无论如何,我会再提出1个问题:
从UIView获取图片
+ (UIImage *)imageFromLayer:(CALayer *)layer {
UIGraphicsBeginImageContext([layer frame].size);
[layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return outputImage;
}
而不是玩这个以获得视图的所需部分作为图像。现在创建一个新视图并添加图像视图(使用从图层获得的图像)。然后移动图像视图的中心以实现高斯算法,并再次从该图层中取出图像并将其放回原始视图。
移动中心应该由半径片段(我以.5f开头)和重采样范围来定义。
for(int i=1; i<resampleCount; i++) {
view1.center = CGPointMake(view1.center.x + radiusFragment*i, view1.center.y);
view2.center = CGPointMake(view2.center.x - radiusFragment*i, view2.center.y);
view3.center = CGPointMake(view3.center.x, view3.center.y + radiusFragment*i);
view4.center = CGPointMake(view4.center.x, view4.center.y - radiusFragment*i);
//add the subviews
}
//get the image from view
所有子视图都需要将alpha设置为1.0f/(resampleCount*4)
这种方法可能不是最快的,但它实现起来非常容易,如果你可以将半径和重新采样范围设置为最小片段,它应该可以很好地完成。
答案 2 :(得分:-1)
使用白色背景的UIView并减少alpha属性
blurView.backgroundColor=[UIColor colorWithRed:255 green:255 blue:255 alpha:0.3]