【问题标题】:CoreImage: Create a CIImage with solid color and display it in NSImageViewCoreImage:创建一个纯色的CIImage并在NSImageView中显示
【发布时间】:2011-11-05 12:06:52
【问题描述】:

我想以编程方式生成一个带有纯色填充的矩形图像。 我怎样才能做到这一点? 我想用 inputImage 填充 inputImageView。

到目前为止,这是我的代码,但我得到的只是一个空的图像视图:

-(void) awakeFromNib{
  CIColor *red = [CIColor colorWithRed:1 green:0 blue:0];
  CIImage *redImage = [CIImage imageWithColor:red];

  NSCIImageRep *ir = [NSCIImageRep imageRepWithCIImage:redImage];

  [self setInputImage:[[NSImage alloc] initWithSize: NSMakeSize(25, 25)]];
  //magic should be happening right here!
  [[self inputImage] addRepresentation:ir];
  [[self inputView] setImage:[self inputImage]];
  [inputView setNeedsDisplay:YES];
}

【问题讨论】:

  • 这个 -awakeFromNib 属于什么类,你的 -drawRect: 代码在哪里?
  • 这个类就是 AppDelegate。没有drawrect。我需要做的主要事情是创建一个 NSImage 对象。
  • 你想要 NSImage 还是 CIImage?

标签: objective-c cocoa core-image


【解决方案1】:
NSImage *image = [[NSImage alloc] initWithSize:NSMakeSize(25, 25)];
[image lockFocus];
[[NSColor redColor] setFill];
[NSBezierPath fillRect:NSMakeRect(0, 0, 25, 25)];
[image unlockFocus];

【讨论】:

  • 谢谢 Rob,这是对这个问题的完美回答。最终,我想将图像用作核心图像过滤器的输入。所以,我想我真的需要两者。你能帮我创建一个 CIImage 吗?
  • 是的,我已经看到了。先生成CIImage会不会更便宜?
  • 您是否每秒执行如此多的数千次,这很重要?
猜你喜欢
  • 1970-01-01
  • 2011-06-08
  • 1970-01-01
  • 1970-01-01
  • 2018-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-27
相关资源
最近更新 更多