2015-10-23 1 views
0

Je veux mélanger deux UIImages comme Fused App fait:l'image iOS mélange comme application Fused

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

Que Fused fait, il faut deux images (premier plan & fond) et appliquer le mélange dans un tel façon que l'arrière-plan reste le même et l'utilisateur peut se déplacer, tourner & taille de l'image de premier plan. J'ai joint deux images pour une meilleure compréhension. Je veux atteindre le même comportement dans mon application. J'ai essayé tous CoreImage & CoreGraphics mais je ne pourrais pas réaliser ceci. Aide nécessaire de vous tous.

Premier écran: Après l'application du mode Overly blend.

Image After Blending!

Deuxième écran: Changer la taille de l'image au premier plan:

Image after arranging the foreground image

Mon Résultat: Screenshot of the app

Répondre

0

Vous pouvez obtenir ce que vous voulez en utilisant CHTStickerView , Je l'ai utilisé avant et ça fonctionne très bien. CHTStickerView est un UIView mobile, redimensionnable et rotatif avec un doigt, qui est entièrement personnalisable.

Utilisez CHTStickerView comme image de premier plan et UIImageView comme image de fond.

Donc, votre code devrait ressembler à ceci:

- (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]; 
} 

MISE À JOUR

Bon j'ai téléchargé l'application et vérifié mélange. Je pense que l'application est en train d'obtenir la valeur d'opacité de l'image de premier plan avec la barre de défilement et de dessiner l'image de premier plan (jeu d'opacité) sur l'image d'arrière-plan.

Donc, pour définir l'opacité d'un UIImage vérifier cela: How to set the opacity/alpha of a UIImage?

Et pour dessiner et image sur une autre de vérifier cela: Draw another image on a UIImage

Pour résumer, ce que vous devez faire est:

1) obtenir la position et la taille de l'utilisateur CHTStickerView après rotation et redimensionner

2) obtenir le UIImage de CHTStickerView, obtenir l'opacité valeu e du curseur

3) définir l'opacité à l'image et dessiner l'image sur votre image d'arrière-plan

Hope this helps!

+0

effectivement ce n'est pas le problème. Mon problème concerne le mélange d'images. Je serai très reconnaissant à vous si vous pouvez proposer une solution à ce sujet. –

+0

J'ai également joint la capture d'écran de mon application.Vous comprendrez donc brièvement ce que je veux accomplir. –

+0

@MuhammadJunaidButt si vous voulez dessiner l'image de premier plan sur l'image de fond? – tnylee