如何在Monotouch中对UIImageView做运动模糊效果



如何在MonoTouch中进行实时运动模糊?

当滚动惯性图库时,我需要在UIImageView上应用运动模糊效果,以强度和方向为参数,就像在Photoshop中一样。

我在CocoaTouch或CoreAnimation或iOS SDK中的任何地方找不到任何模糊或运动模糊过滤器。

是否有一些2D效果库可用从MonoTouch实时模糊滤镜,是好的iPhone?

我找到了一个很好的开源库,可以在UIImage上做很多效果:

https://github.com/gdawg/uiimage-dsp

它还使用了加速框架来加快iOS 4.0的速度。

现在,如果有一个MonoTouch包装器就好了。

这篇文章描述了一种可能的方法:

http://martinbowling.com/post/Recreating-the-Awesome-UrbanSpoon-UI-Effect-In-MonoTouch.aspx

如果你想使用苹果在WWDC上演示的模糊效果(尽管不是实时的!)我把他们的UIImage分类做了一个本地移植。

  • https://github.com/lipka/MonoTouch.UIImageEffects

获得模糊有点乏味,但可行:

// 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);

相关内容

  • 没有找到相关文章

最新更新