GPUImageMotionBlurFilter和具有透明度的图像

时间:2014-07-01 17:28:57

标签: ios gpuimage

我尝试将GPUImageMotionBlurFilter应用于UIView的快照。我也想模糊视图的顶部和底部边缘,因此我在传递给insetY的矩形上方和下方留下了一个透明空间(drawViewHierarchyInRect:afterScreenUpdates:)。 GPUImage似乎忽略了透明度,并且表现得像是填充了比-lightGrayColor轻一点的颜色。

这是我的代码(它在UIView子类中的方法中):

CGFloat insetX = 0;
CGFloat insetY = 10;
CGRect snapshotFrame = CGRectInset(self.bounds, -insetX, -insetY);

UIGraphicsBeginImageContextWithOptions(snapshotFrame.size, NO, 0.0f);
[self drawViewHierarchyInRect:CGRectMake(insetX, insetY, CGRectGetWidth(self.frame), CGRectGetHeight(self.frame)) afterScreenUpdates:YES];
UIImage *snapshotImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

GPUImageMotionBlurFilter *motionBlurFilter = [[GPUImageMotionBlurFilter alloc] init];
motionBlurFilter.blurAngle = 90;
motionBlurFilter.blurSize = 20.0f;

UIImage *blurredImage = [motionBlurFilter imageByFilteringImage:snapshotImage];

这就是我得到的:

snapshotImage

blurredImage

我正在尝试做什么?

0 个答案:

没有答案