iphone - 如何使用CIStarShineGenerator?

标签 iphone ios ios6

我正在试用新的 CIFilter,CIStarShineGenerator .

但是输出的图片是空白的,如何判断是否正常生成?

CIColor *blue = [CIColor colorWithString:@"0.1 0.5 0.8 1.0"];
CIFilter *filter = [CIFilter filterWithName:@"CIStarShineGenerator" keysAndValues:@"inputColor", blue, nil];
CIImage *outputImage = [filter outputImage];
UIImage *image = [UIImage imageWithCIImage:outputImage];

_imageView.image = image;

imageView 是显示在屏幕上的 ImageView 。

最佳答案

我在 Apple 的网站上找到了这个过滤器,并认为它非常适合我正在尝试做的事情,但几乎没有关于它的信息,这个问题是我在 SO 上唯一能找到的引用。

所以在弄乱了很长时间之后,我让它工作了。

基本上您是在正确的道路上,但有更多的值需要设置,您必须创建一个具有特定 CGRectUIImage 足以保存最终结果。

以下可能会实现您想要做的事情,使用 10x10 像素的星星(大小 基本上是半径)。

CGFloat size = 5;

CIFilter *filter = [CIFilter filterWithName:@"CIStarShineGenerator"];
CIColor *blue = [[CIColor alloc] initWithColor:[UIColor colorBlue]];

[filter setDefaults];
[filter setValue:[NSNumber numberWithFloat:size/2] forKey:@"inputRadius"];
[filter setValue:[NSNumber numberWithFloat:1] forKey:@"inputCrossWidth"];
[filter setValue:[NSNumber numberWithFloat:2] forKey:@"inputCrossScale"];
[filter setValue:blue forKey:@"inputColor"];
[filter setValue:[CIVector vectorWithX:size Y:size] forKey:@"inputCenter"];

CIImage *outputImage = [filter valueForKey:@"outputImage"];

CIContext *context = [CIContext contextWithOptions:nil];

CGFloat UIImageOriginX = 0;
CGFloat UIImageOriginY = 0;
CGFloat UIImageSizeWidth = size * 2;
CGFloat UIImageSizeHeight  = size * 2;

UIImage *image = [UIImage imageWithCGImage:[context createCGImage:outputImage fromRect:CGRectMake(UIImageOriginX, UIImageOriginY, UIImageSizeWidth, UIImageSizeHeight)]];

_imageView.image = image;

上面的一些内容有点矫枉过正(您可以直接定义内联的 CGRect 大小)但我试图以一种清晰的方式处理各种变量。

关于iphone - 如何使用CIStarShineGenerator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13623981/

相关文章:

iphone - 通过 UIView 将触摸传递到 UIScrollView 不起作用

iphone - iOS 上 PhoneGap 2.0 的应用内购买 (IAP) 插件?

iphone - UIImage+Retina4 类别如果在 didMoveToSuperview 中使用则不起作用

ios - 无法将 UISearchBar 的半透明属性设置为 NO

ios - NSInternalInconsistencyException',原因 : 'Could not load NIB in bundle - but it' s there, 有点

iOS 比较 NSUInteger 和 NSInteger

ios - 过渡到导航 View Controller

ios - swift 中 UICollectionview 的自定义页脚 View

ios - 未调用 layoutSubviews 时如何获取 UICollectionView 单元格的大小

objective-c - 如何复制 UIRefreshControl 的 "pulled chewing gum"外观?