在MonoTouch中进行实时运动模糊的方法是什么?
当滚动惯性画廊时,我需要在UIImageView上应用运动模糊效果,强度和方向作为参数,如Photoshop中所示。
我无法在CocoaTouch或CoreAnimation中找到任何模糊或运动模糊滤镜,也无法在iOS SDK中的任何位置找到。
是否有一些可以从MonoTouch使用的2D效果库以及适用于iPhone的实时模糊滤镜?
提前致谢。
答案 0 :(得分:1)
我找到了一个很好的开源库来对UIImage做很多效果:
https://github.com/gdawg/uiimage-dsp
它还使用Accelerated框架在iOS 4.0上加速了一些事情。
现在,如果只有MonoTouch包装器......
答案 1 :(得分:0)
这篇文章描述了一种可行的方法:
http://martinbowling.com/post/Recreating-the-Awesome-UrbanSpoon-UI-Effect-In-MonoTouch.aspx
答案 2 :(得分:0)
如果你想使用在WWDC上演示的模糊Apple(虽然不是实时的!)我创建了他们的UIImage类别的本地端口。
获得模糊有点单调乏味,但可行:
// Helper method to create an image snapshot of the view hierarchy
UIImage SnapshotImageWithScale (UIView view, float scale)
{
UIGraphics.BeginImageContextWithOptions (view.Bounds.Size, false, scale);
view.DrawViewHierarchy (view.Bounds, true);
UIImage image = UIGraphics.GetImageFromCurrentImageContext ();
UIGraphics.EndImageContext ();
return image;
}
...
// Create snapshot of the parent view controller (this can be the superview or anything else)
UIImage snapshot = SnapshotImageWithScale (parentView, UIScreen.MainScreen.Scale);
// Blur the snapshot with the specified radius and tint color
snapshot = snapshot.ApplyBlur (6.0f, UIColor.FromWhiteAlpha (0.0f, 0.6f), 0.8f, null);
// Create an UIImageView to display the blurred snapshot
UIImageView snapshotView = new UIImageView {
Frame = new RectangleF (0, 0, View.Bounds.Width, View.Bounds.Height),
Image = snapshot,
};
View.AddSubview (snapshotView);