如何在iPhone sdk中获取彩色图像

时间:2009-07-31 17:19:17

标签: iphone uiimage

我想要的东西如下

UIImage *solid = [UIImage imageWithColor:[UIColor darkGrayColor]];

创建关于某种颜色的图像。

如何在iPhone sdk中执行此操作。

2 个答案:

答案 0 :(得分:21)

您可以将颜色绘制到CGContext中,然后从中捕获图像:

- (UIImage *)imageWithColor:(UIColor *)color andSize:(CGSize)size {
  //Create a context of the appropriate size
  UIGraphicsBeginImageContext(size);
  CGContextRef currentContext = UIGraphicsGetCurrentContext();

  //Build a rect of appropriate size at origin 0,0
  CGRect fillRect = CGRectMake(0,0,size.width,size.height);

  //Set the fill color
  CGContextSetFillColorWithColor(currentContext, color.CGColor);

  //Fill the color
  CGContextFillRect(currentContext, fillRect);

  //Snap the picture and close the context
  UIImage *retval = UIGraphicsGetImageFromCurrentImageContext(void);
  UIGraphicsEndImageContext();

  return retval;
}

答案 1 :(得分:2)

如果您只是想创建一个实心矩形的颜色,为什么不只是做

之类的事情
UIView *solid = [[UIView alloc] initWithFrame:someFrame];
solid.backgroundColor = [UIColor greyColor];

然后将视图添加到要显示纯色的子视图中。

(当然,只有这是你想要实现的目标。也许你不是这样。)