0

我怎样才能务实地实现下面的图像——这意味着数字可以在运行时改变,甚至可以被电影替换?

在此处输入图像描述

4

3 回答 3

1

只需在你的东西上添加一个模糊的 UIView 即可。

例如...制作您想要的视图大小的 UIImage,使用CIFilter对其进行模糊处理,然后将其添加到您的视图中。它应该可以达到预期的效果。

于 2013-04-17T11:55:09.967 回答
1

通常是同一个问题,可以通过很多方法来回答。无论如何,我会再提出 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)

这种方法可能不是最快的,但它非常容易实现,如果你可以将半径和重新采样范围重新采样到最小片段,它应该会做得很好。

于 2013-04-17T13:06:54.597 回答
-1

使用白色背景的 UIView 并减少 alpha 属性

blurView.backgroundColor=[UIColor colorWithRed:255 green:255 blue:255 alpha:0.3]
于 2013-04-17T11:49:25.640 回答