修改UIImage图片的颜色 大家好,这两天看iphone客户端的美图秀秀,我看他那个处理图片,可以把一张彩色的图片设置成黑白的,我今天查了很多资料,也尝试了做一下,但是都没有做出来那个,我想请问下各位大牛,有没有什么好的思路给我提供一下,谢谢. 就是目前有一张图片,是彩色的,但是我想给他变成黑白的,我应该怎么处理.谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其实网上有很多,到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 UIScrollView 的缩放问 限制textField的最大输入长度 求查看联系人、查看资源的方法。 iOS 蓝牙通讯不需要MFi认证方式 UIView嵌套多个UIView libimobiledevice获取app的png图标 ipad 的通知中心 怎样才能一个app 显示多条通知 新人接触IOS,#import NSString的问题 ios 多线程多任务并发下载图片资源 WKWebView的缩放问题 iphone程序 实现在google地图上画线:mkpolyline 求 一个 iphone 相册实现的方法
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;
}