Wie blur ein vorhandenes Bild in eine UIImageView mit Swift?
Ist das setup einfach.
- Einen ViewController mit UIImageView, die hat ein Bild zugewiesen.
- Ein UIButton, dass, wenn geklickt wird, wobei das Bild in der UIImageView.
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var bg: UIImageView!
@IBAction func blur(_ sender: Any) {
let inputImage = CIImage(cgImage: (bg.image?.cgImage)!)
let filter = CIFilter(name: "CIGaussianBlur")
filter?.setValue(inputImage, forKey: "inputImage")
filter?.setValue(10, forKey: "inputRadius")
let blurred = filter?.outputImage
bg.image = UIImage(ciImage: blurred!)
}
}
Wenn der button geklickt wird der Bildschirm nur weiß wird. Kann nicht herausfinden, was ich falsch mache. Wer weiß, was ich falsch mache?
Werden Sie den Test auf einem echten Gerät oder im simulator? Einige CI-Filter (ich arbeite an einer maskierten blur jetzt) haben erbärmliche Leistung (denken in Bezug auf unter eine minute auf die Anzeige) in den simulator.
Überprüfen Sie bitte meine Antwort mit dem Github-link zu testen..
Überprüfen Sie bitte meine Antwort mit dem Github-link zu testen..
InformationsquelleAutor Mark Moeykens | 2016-12-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie einfach verwenden
UIVisualEffect
zu erreichen blur-Effekt. Als Sie versuchen, zu erreichen, einen Unschärfe-Effekt mit CoreImage.Probieren Sie folgenden code nachimport CoreImage
zu Ihrer Klasse.Ausgabe:
Hinweis: empfehle ich Ihnen, testen Sie den code in Reale Gerät als Simulator Leistung ist zu langsam auf coreImage.
UIVisualEffect
weil ich wollte, um die Höhe der Unschärfe mit der inputRadius. Danke!Bitte sehen Sie hier für benutzerdefinierte Unschärfe scale stackoverflow.com/a/51406290/7576100
InformationsquelleAutor Joe
für diejenigen, die ❤ ️ - Protokolle
InformationsquelleAutor kaushal.exe
Hier ist, wie ich mein erwartetes Ergebnis im SWIFT-3.1:
Hoffe, es wird helfen.
asd
odercgImageA
. Sie können einfach schreiben:if let outputImage = outputImage { // }
. Für mehr info check raywenderlich code-Stil, den ich verwenden: github.com/raywenderlich/swift-style-guide#optionalsInformationsquelleAutor Md Milan Mia
Ich aus der Unschärfe in ein NSObject Klasse, so kann ich die Verwendung dieser Methode im gesamten Projekt leicht.
In ViewController machte ich ein Objekt der UIVisualEffectView. Rufen Sie dann die Methode der helper-Klasse zum hinzufügen von Unschärfe.
InformationsquelleAutor Amanpreet
Verwenden:
Ausgabe:
Gitbub link:
https://github.com/k-sathireddy/ImageBlurEffect
InformationsquelleAutor KSR
Lösungen mit
UIVisualEffectView
oderCIFilter
haben schreckliche Leistung oder schlechte Ergebnisse (Herstellung einer unscharfen hellen Rand um das Bild wie gesehen werden kann, in Joes Antwort) oder beides.Eines der leistungsstärksten Lösungen mit ordentlichen Ergebnissen ist
StackBlur
was nutzt einen cleveren Algorithmus, der effizient annähernd eine Unschärfe:Check-out StackBlur auf Github.
Gibt es viele Versionen gibt, auch Swift-ports, diese sind aber erheblich langsamer als die Obj-C-Versionen.
InformationsquelleAutor Manuel
Können Sie hinzufügen blur-Effekt durch
UIBlurEffect
undUIVisualEffectView
:InformationsquelleAutor Bhavin Ramani