对图片进行涂色

 

一:

- (void)drawRect:(CGRect)rect

{

    // Drawing code

    CGContextRef context = UIGraphicsGetCurrentContext();

     CGContextSaveGState(context);

    

 // Draw picture first

     //

     CGContextDrawImage(context, self.frameimage.CGImage);

     // Blend mode could be any of CGBlendMode values. Now draw filled rectangle

     // over top of image.

     //

     CGContextSetBlendMode (context, kCGBlendModeDestinationOut);

     CGContextSetFillColor(context, CGColorGetComponents([UIColor blueColor].CGColor));

     CGContextFillRect (context, self.bounds);

     CGContextRestoreGState(context);

 

}

 
二:

- (void)setTintColor:(UIColor *)color

{

    _tintColor = color;

     //update every time the tint color is set

    [self setNeedsDisplay];

}

 - (void)drawRect:(CGRect)rect

{

    CGContextRef context = UIGraphicsGetCurrentContext();    

     //resolve CG/iOS coordinate mismatch

    CGContextScaleCTM(context, 1, -1);

    CGContextTranslateCTM(context, 0, -rect.size.height);

 

    //set the clipping area to the image

    CGContextClipToMask(context, rect, _image.CGImage);

 

    //set the fill color

    CGContextSetFillColor(context, CGColorGetComponents(_tintColor.CGColor));

    CGContextFillRect(context, rect);    

 

    //blend mode overlay

    CGContextSetBlendMode(context, kCGBlendModeOverlay);

 

    //draw the image

    CGContextDrawImage(context, rect, _image.CGImage);    

}

 

 

三:

 

UIImage *imageReddish = [self tintedImageUsingColor:imageGrayScale forColor:[UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:0.8]];

 

+(UIImage)tintedImageUsingColor:(UIImage)image forColor:(UIColor *)tintColor 

{

 //Apply tint to the 'image'

 UIGraphicsBeginImageContext(image.size);

 CGRect drawRect = CGRectMake(0, 0, image.size.width, image.size.height);

 [image drawInRect:drawRect];

 [tintColor set];

 UIRectFillUsingBlendMode(drawRect, kCGBlendModeSourceAtop);

 UIImage *tintedImage = UIGraphicsGetImageFromCurrentImageContext();

 UIGraphicsEndImageContext();

 

 return tintedImage;

}

posted on 2013-07-07 17:54  luoyajunios  阅读(199)  评论(0)    收藏  举报

导航