Ist es möglich, Echtzeit-Blending wie der Pfeil in der Benachrichtigungszentrale auf iOS 7 zu haben? Ich frage mich, ob es möglich ist, eine UIImage-Mischung mit weichem Licht mit dem Inhalt (UIView oder CALayer) direkt darunter zu haben, damit sich das Hintergrundbild bewegen kann und das gemischte Bild an einer Stelle bleibt.Realtime Blending UIImages
ich es will, wo man eine UIImage haben können, wo Sie eine blendmode-Eigenschaft auf, was auch immer Mischung Modus können Sie benötigen, wie imageView.blendMode = kCGBlendModeSoftLight;
Ich versuchte GPUImage verwenden, aber ich konnte nicht herausfinden, wie zu tun was ich brauche. Jede Hilfe wäre willkommen.
Bis jetzt ist der Code, den ich verwende, um den Mischmodus eines UIImage einzustellen, dies; Wenn die Hintergrundansicht jedoch verschoben wird, wird die Überblendung auf dem UIImage nicht aktualisiert.
//blur the background
GPUImageGaussianBlurFilter *blurFilter = [[GPUImageGaussianBlurFilter alloc] init];
blurFilter.blurRadiusInPixels = 50.0f;
blurFilter.blurPasses = 4;
UIImage *blurredBackground = [blurFilter imageByFilteringImage:[UIImage imageNamed:@"Background.png"]];
//make the blended images
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 2.0f);
CGContextSetInterpolationQuality(UIGraphicsGetCurrentContext(), kCGInterpolationHigh);
[blurredBackground drawInRect:self.view.bounds blendMode:kCGBlendModeNormal alpha:1.0];
[[UIImage imageNamed:@"BarLineImage.png"] drawInRect:CGRectMake(0, self.view.bounds.size.height - 31, self.view.bounds.size.width, 1) blendMode:kCGBlendModeSoftLight alpha:1.0];
[[UIImage imageNamed:@"Equalizer-th.png"] drawInRect:CGRectMake(65, self.view.bounds.size.height - 30, 30, 30) blendMode:kCGBlendModeSoftLight alpha:1.0];
[[UIImage imageNamed:@"Player-th.png"] drawInRect:CGRectMake(145, self.view.bounds.size.height - 30, 30, 30) blendMode:kCGBlendModeSoftLight alpha:1.0];
[[UIImage imageNamed:@"Container-th.png"] drawInRect:CGRectMake(225, self.view.bounds.size.height - 30, 30, 30) blendMode:kCGBlendModeSoftLight alpha:1.0];
UIImage *blendedImages = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Hier ist ein Screenshot, was dieser Code für einige visuelle Hilfe tut.
Dies sieht so aus, wie ich es brauche, aber ich kann den Inhalt unter den Bildern unten nicht animieren. Ich muss wirklich in der Lage sein, Echtzeit-Blending für UIImages und UIViews zu haben.
Können Sie ein bisschen mehr über erklären, wie die "Hintergrundansicht bewegt wird"? Suchen Sie nach einer Unschärfe des Live-Video-Feeds oder nach dem Effekt, der auf dem Bildschirm angezeigt wurde? –
Ich bin auf der Suche nach einer Mischung aus dem Live-Video-Feed. –
Ich denke, ich verstehe, was Sie anstreben, und es ist eine interessante Idee! Es ist einfach, den Live-Videofeed für den gesamten Hintergrund unscharf zu machen. Schalten Sie einfach das Bild, das Sie gerade verwischen, für eine GPUImageVideoCamera aus, die wie bei den Beispielprojekten auf den Unschärfefilter ausgerichtet ist, dessen Ziel das GPUImageView ist. Aber Ihre Idee, die Steuerelemente mit dem darunterliegenden Video zu mischen, klingt ansprechend. Ich habe eine Vorstellung davon, wie man das mit einer verzweigten Kette und etwas Cropping erreicht. Ich werde heute Abend damit spielen und sehen, ob ich es schaffen kann. Ich werde dich wissen lassen, was ich vorhabe! –