Ne iOS 5 soutien flou CoreImage fiters?
Selon la documentation, il doit soutenir le flou, note la "Disponible dans iOS 5.0 et plus tard":
CIFilter De Référence De Classe
Mais en fonction de l'appareil, il n'est pas:
[CIFilter filterNamesInCategory:kCICategoryBlur];
ne retourne rien.
Selon ce qui suit, seulement ces filtres sont disponibles sur mon iPhone et sur Simulateur (qui sont à la fois running 5.0):
[CIFilter filterNamesInCategory:kCICategoryBuiltIn]
CIAdditionCompositing,
CIAffineTransform,
CICheckerboardGenerator,
CIColorBlendMode,
CIColorBurnBlendMode,
CIColorControls,
CIColorCube,
CIColorDodgeBlendMode,
CIColorInvert,
CIColorMatrix,
CIColorMonochrome,
CIConstantColorGenerator,
CICrop,
CIDarkenBlendMode,
CIDifferenceBlendMode,
CIExclusionBlendMode,
CIExposureAdjust,
CIFalseColor,
CIGammaAdjust,
CIGaussianGradient,
CIHardLightBlendMode,
CIHighlightShadowAdjust,
CIHueAdjust,
CIHueBlendMode,
CILightenBlendMode,
CILinearGradient,
CILuminosityBlendMode,
CIMaximumCompositing,
CIMinimumCompositing,
CIMultiplyBlendMode,
CIMultiplyCompositing,
CIOverlayBlendMode,
CIRadialGradient,
CISaturationBlendMode,
CIScreenBlendMode,
CISepiaTone,
CISoftLightBlendMode,
CISourceAtopCompositing,
CISourceInCompositing,
CISourceOutCompositing,
CISourceOverCompositing,
CIStraightenFilter,
CIStripesGenerator,
CITemperatureAndTint,
CIToneCurve,
CIVibrance,
CIVignette,
CIWhitePointAdjust
- La documentation dit que le
kCICategoryBlur
constante est disponible, qui il est. Vous l'avez utilisé avec succès dans[CIFilter filterNamesInCategory:kCICategoryBlur];
. Qui vous a dit il n'y avait pas les filtres de flou disponibles à l'époque. - Qui m'a fait rire, merci!
Vous devez vous connecter pour publier un commentaire.
Malheureusement, il ne prend pas en charge tout se brouille. Pour cela, vous devrez supprimer votre propre.
Tandis que le Noyau de l'Image sur iOS 5.0 manque les filtres de flou, il y a toujours un moyen d'obtenir l'accélération GPU de la brouille des images et de la vidéo. Mon open source GPUImage cadre a de multiples flou types, y compris Gaussien (à l'aide de la GPUImageGaussianBlurFilter pour un général de Gauss ou le GPUImageFastBlurFilter pour un matériel optimisé 9-hit Gaussien), boîte (à l'aide d'un GPUImageBoxBlurFilter), la médiane (à l'aide d'un GPUImageMedianFilter), et un flou bilatéral (à l'aide d'un GPUImageBilateralBlurFilter).
Je décris les shaders utilisés pour retirer le matériel optimisé flou Gaussien dans cette réponse, et vous pouvez examiner le code que j'utilise pour le reste dans le cadre. Ces filtres courir des dizaines de fois plus rapide que n'importe quel CPU routine j'ai encore essayé.
J'ai également incorporé ces mêle multi-étape du traitement d'effets, comme le masquage flou, tilt-shift de filtrage, Habile détection de contours, et Harris coin de détection, qui sont tous disponibles en tant que filtres à l'intérieur de ce cadre.
Encore une fois, dans une tentative de sauver tous les iOS flou isses, voici ma contribution:
https://github.com/tomsoft1/StackBluriOS
Un simple flou de la bibliothèque fondée sur la Pile de Flou. Pile Flou est très similaire au Flou Gaussien, mais beaucoup plus rapide (voir http://incubator.quasimondo.com/processing/fast_blur_deluxe.php )
l'utiliser comme ceci:
Espérons que cette aide
m_PixelBuf[offset]=dv[rsum];
donneEXC_BAD_ACCESS
(code=2, l=******`Moi aussi j'ai été déçu de voir que l'Image principale dans iOS ne prend pas en charge les flous. Voici la fonction que j'ai écrit pour faire un 9-appuyez sur flou Gaussien sur une UIImage. L'appeler à plusieurs reprises pour obtenir plus flous.
Viens de l'appeler sur une image existante comme ceci:
et de le répéter pour obtenir plus flou, comme ceci:
Mise à JOUR: Comme d'iOS 6
[CIFilter filterNamesInCategory:kCICategoryBlur];
retourneCIGaussianBlur
sens que ce filtre est disponible sur l'appareil. Même si c'est vrai, vous (probablement) permettra d'obtenir de meilleures performances et une plus grande souplesse à l'aide de GPUImage.Voici le lien vers notre tutoriel sur la fabrication d'effet de flou dans l'application iOS avec des approches différentes. http://blog.denivip.ru/index.php/2013/01/blur-effect-in-ios-applications/?lang=en
Si vous pouvez utiliser OpenGL ES dans votre application iOS, c'est comment calculer la médiane dans un pixel quartier le rayon de votre choix (la médiane étant une sorte de flou, bien sûr):
Une brève description des étapes
1. Calculer la moyenne des valeurs des pixels autour de la source de pixels dans un voisinage 3x3;
2. Trouver le maximum de valeur de pixel de tous les pixels dans le même quartier qui sont inférieures à la moyenne.
3. [FACULTATIF] Soustraire la médiane de la valeur de pixel à partir de la source de valeur de pixel pour la détection de contours.
Si vous êtes en utilisant la valeur médiane pour la détection de contours, il ya un couple de façons de modifier le code ci-dessus pour de meilleurs résultats, à savoir, hybride filtrage médian et tronquée des médias de filtrage (un substitut et d'un meilleur "mode" de filtrage). Si vous êtes intéressé, merci de demander.
Parce que je suis en utilisant Xamarin, je me suis converti John Stephen est la réponse C#: