代码之家  ›  专栏  ›  技术社区  ›  Rajesh Maurya Larcho

如何在iOS中合并两幅边缘图像,使其看起来像一幅图像?

  •  1
  • Rajesh Maurya Larcho  · 技术社区  · 9 年前

    我有两个图像视图。如何合并此图像,使其看起来像单个图像。我尝试了很多方法,比如在第一张图片的结尾和第二张图片的开头创建模糊和渐变,尽管并没有得到像下图这样的理想结果。

    这是正常图像。

    enter image description here

    这是在合并之后。

    enter image description here

    如何实现这一结果?请帮帮我。 提前感谢。

    1 回复  |  直到 9 年前
        1
  •  1
  •   Rajesh Maurya    9 年前

    我得到了答案。使用下面的代码并在边界处为两幅图像添加渐变遮罩。您可以将第二个图像视图框架的某些像素向上移动到第一个图像,这样第一个图像视图边框和第二个视图边框将完全合并。

    -(void)addGradientTo:(UIImageView*)imageView {
    
    CAGradientLayer *gradient = [CAGradientLayer layer];
    gradient.frame = imageView.bounds;
    
    gradient.colors = [NSArray arrayWithObjects:
                                (id)[[UIColor colorWithWhite:0 alpha:0.2] CGColor],
                                (id)[[UIColor colorWithWhite:0 alpha:1] CGColor],
                                (id)[[UIColor colorWithWhite:0 alpha:1] CGColor],
                                (id)[[UIColor colorWithWhite:0 alpha:0.2] CGColor], nil];
    
    gradient.locations = [NSArray arrayWithObjects:
                          [NSNumber numberWithFloat:0],
                          [NSNumber numberWithFloat:.1],
                          [NSNumber numberWithFloat:.9],
                          [NSNumber numberWithFloat:1], nil];
    
    gradient.startPoint = CGPointMake(0,0.3);
    gradient.endPoint=CGPointMake(1,0.3);
    [imageView.layer setMask:gradient];
    

    }