Appliquer le filter GPUImage à un UIView

J'ai un problème. J'ai besoin d'appliquer un filter comme Pixelate or Blur à un UIView entier. Comme l'application eBay iPad .

J'ai pensé à utiliser GPUImage mais je ne sais pas comment le faire. Il existe un moyen d'appliquer directement un filter à une GPUImageView sans passer un UIImage ?

Le problème principal est que faire une capture d'écran d'un grand UIView sur un iPad 3rd est UIView cher (2 secondes pour le grab UIWindow ). Donc, la solution idéale est d'appliquer un filter directement sur les vues, tout comme l'application eBay, mais .. comment?

Merci à tous!

Pour afficher une vue dans GPUImage, vous pouvez utiliser une source GPUImageUIElement, qui prend en input UIView ou CALayer. Il y a un exemple de ceci dans l'exemple d'application FilterShowcase.

Cela dépend de la méthode -renderInContext: d'un CALayer sous-jacent, ce qui peut être coûteux pour redessiner la vue. Cependant, si la vue est statique, il suffit d'utiliser cette mise à jour une fois et l'image résultante sera caching sur le GPU en tant que texture. Les actions de filtrage appliquées après ce point seront très rapides.

Vous pourriez être en mesure d'atteindre l'apparence que vous searchz en appliquant CIFilter s à votre propriété layer.filters vues. Consultez les documents pour plus d'informations:

https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CALayer_class/Introduction/Introduction.html

Peut-être que c'est quelque chose pour vous? Je n'ai pas essayé, mais lire à ce sujet dans un post une fois:

StackBlur

Je suis désolé, j'ai relu votre message et cette extension est sur le sharepoint brouiller un UIImage, et vous avez dit que c'était quelque chose que vous ne vouliez pas … Eh bien, je vais le laisser ici si les gens vont googler pour brouiller une image. Pardon 🙁