Question

I want something as follows

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

to create an image with respect to some color.

how to do it in iPhone sdk.

Was it helpful?

Solution

You can draw the color into a CGContext and then capture an image from it:

- (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;
}

OTHER TIPS

If you're just trying to create a solid rectangle of colour why not just do something like

UIView *solid = [[UIView alloc] initWithFrame:someFrame];
solid.backgroundColor = [UIColor greyColor];

And then add the view to whatever subview you want to show the solid colour.

(That is, of course only if that's what you're trying to achieve. Maybe you aren't)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top