Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -(UIImage*)removeColorFromImage:(UIImage*)sourceImage grayLevel:(int)grayLevel
- {
- int width = sourceImage.size.width * sourceImage.scale;
- int height = sourceImage.size.height * sourceImage.scale;
- CGFloat scale = sourceImage.scale;
- CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
- CGContextRef context = CGBitmapContextCreate(NULL, width, height, 8, width * 4, colorSpace, kCGBitmapAlphaInfoMask & kCGImageAlphaPremultipliedFirst);
- CGColorSpaceRelease(colorSpace);
- CGContextDrawImage(context, CGRectMake(0, 0, width, height), sourceImage.CGImage);
- unsigned int *colorData = CGBitmapContextGetData(context);
- for (int i = 0; i < width * height; i++)
- {
- unsigned int color = *colorData;
- short a = color & 0xFF;
- short r = (color >> 8) & 0xFF;
- short g = (color >> 16) & 0xFF;
- short b = (color >> 24) & 0xFF;
- if ((r == grayLevel) && (g == grayLevel) && (b == grayLevel))
- {
- a = r = g = b = 0;
- *colorData = (unsigned int)(r << 8) + ((unsigned int)(g) << 16) + ((unsigned int)(b) << 24) + ((unsigned int)(a));
- }
- colorData++;
- }
- CGImageRef output = CGBitmapContextCreateImage(context);
- UIImage* retImage = [UIImage imageWithCGImage:output scale:scale orientation:UIImageOrientationUp];
- CGImageRelease(output);
- CGContextRelease(context);
- return retImage;
- }
- var context = CGBitmapContextCreate(nil, width, height, 8, width * 4, colorSpace, CGBitmapInfo(CGImageAlphaInfo.PremultipliedFirst.rawValue))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement