【问题标题】:iOS image blending like Fused app像 Fused 应用一样的 iOS 图像混合
【发布时间】:2016-01-23 09:12:39
【问题描述】:

我想像 Fused App 一样混合两个 UIImage:

https://itunes.apple.com/us/app/fused-double-exposure-video/id869117407?mt=8

Fused 所做的是,它需要两张图像(前景和背景)并以这样的方式应用混合,即背景保持不变,用户可以移动、旋转和调整前景图像的大小。我附上了两张图片以便更好地理解。我想在我的应用程序中实现相同的行为。我已经尝试了所有 CoreImage 和 CoreGraphics 但我无法做到这一点。需要你们所有人的帮助。

首屏:应用过度混合模式后。

第二屏:改变前景图像的大小:

我的结果:

【问题讨论】:

    标签: ios objective-c core-graphics cgcontext core-image


    【解决方案1】:

    您可以使用CHTStickerView 来实现您想要的,我以前用过它,效果很好。 CHTStickerView 是一个可移动、可调整大小、可旋转的单指 UIView,可完全自定义。

    使用CHTStickerView 作为前景图像,使用UIImageView 作为背景图像。

    所以你的代码应该是这样的:

    - (void)viewDidLoad {
      [super viewDidLoad];
    
      //background
      UIImageView *backgroundImageView = [[UIImageView alloc] initWithFrame:self.view.frame];
      [backgroundImageView setImage:@"background.png"];
      [self.view addSubview:backgroundImageView];
    
      //foreground
      UIImageView *foregroundImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 150, 150)];
      [foregroundImageView setImage:[UIImage imageNamed:@"foreground.png"]];
    
      CHTStickerView *stickerView = [[CHTStickerView alloc] initWithContentView:foregroundImageView]; //set your foreground image as content in CHTStickerView
      stickerView.center = self.view.center;
      stickerView.delegate = self;
      [stickerView setImage:[UIImage imageNamed:@"Close"] forHandler:CHTStickerViewHandlerClose];
      [stickerView setImage:[UIImage imageNamed:@"Rotate"] forHandler:CHTStickerViewHandlerRotate];
      [self.view addSubview:stickerView];
    }
    

    更新

    好的,我下载了应用并查看了 blend。我认为应用程序正在做的只是使用滑动条获取前景图像的不透明度值并在背景图像上绘制前景图像(不透明度集)。

    所以要设置 UIImage 的不透明度,请查看:How to set the opacity/alpha of a UIImage?

    要在另一个上绘制和图像,请查看:Draw another image on a UIImage

    总而言之,您需要做的是:

    1) 得到CHTStickerView在用户旋转和调整大小后的位置和大小

    2) 从CHTStickerView 获取UIImage,从滑块获取不透明度值

    3) 为图像设置不透明度并在背景图像上绘制图像

    希望这会有所帮助!

    【讨论】:

    • 其实这不是问题。我的问题是关于图像混合。如果您能就此提出解决方案,我将非常感谢您。
    • 我也附上了我的应用程序的屏幕截图。因此,您将简要了解我想要实现的目标。
    • @MuhammadJunaidButt 所以你想在背景图像上绘制前景图像?
    • 我想像 Fused app 那样混合两张图片。为了方便起见,我在我的问题中附上了三张图片。融合应用程序混合两个图像并将结果图像存储在前景图像中。令人惊讶的是,如果您移动/旋转/缩放前景图像,混合效果将保持不变,并且前景图像没有背景图像但具有颜色反射。如果可能,请检查屏幕截图并使用 Fused App (itunes.apple.com/us/app/fused-double-exposure-video/…)。我被困在这个问题上,花了我 10 天的时间。
    • @MuhammadJunaidButt 我检查了该应用程序,它非常简单。查看我的更新答案。
    猜你喜欢
    • 1970-01-01
    • 2012-06-02
    • 2015-06-24
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    相关资源
    最近更新 更多