gpt4 book ai didi

iphone - 如何使用CIStarShineGenerator?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:46:57 25 4
gpt4 key购买 nike

我正在试用新的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com