修改UIImage图片的颜色
大家好,这两天看iphone客户端的美图秀秀,我看他那个处理图片,可以把一张彩色的图片设置成黑白的,我今天查了很多资料,也尝试了做一下,但是都没有做出来那个,我想请问下各位大牛,有没有什么好的思路给我提供一下,谢谢.就是目前有一张图片,是彩色的,但是我想给他变成黑白的,我应该怎么处理.谢谢 --------------------编程问答-------------------- 其实网上有很多,到github.com搜
下面做到UIImage的Category里即可
运行
UIImage *image = ???
image = [image grayscale];
就变黑白了
--------------------编程问答-------------------- 楼上的代码没有试出效果。难道跟图片格式有关?
-(UIImage*)grayscale
{
/* const UInt8 luminance = (red * 0.2126) + (green * 0.7152) + (blue * 0.0722); // Good luminance value */
/// Create a gray bitmap context
const size_t width = self.size.width;
const size_t height = self.size.height;
CGRect imageRect = CGRectMake(0, 0, self.size.width, self.size.height);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
CGContextRef bmContext = CGBitmapContextCreate(NULL, width, height, 8/*Bits per component*/, width * 3, colorSpace, kCGImageAlphaNone);
CGColorSpaceRelease(colorSpace);
if (!bmContext)
return nil;
/// Image quality
CGContextSetShouldAntialias(bmContext, false);
CGContextSetInterpolationQuality(bmContext, kCGInterpolationHigh);
/// Draw the image in the bitmap context
CGContextDrawImage(bmContext, imageRect, self.CGImage);
/// Create an image object from the context
CGImageRef grayscaledImageRef = CGBitmapContextCreateImage(bmContext);
UIImage *grayscaled = [UIImage imageWithCGImage:grayscaledImageRef
scale:self.scale
orientation:self.imageOrientation];
/// Cleanup
CGImageRelease(grayscaledImageRef);
CGContextRelease(bmContext);
return grayscaled;
}
补充:移动开发 , iPhone