iOS-ios 彩色图片怎么缓慢变成灰度图

iOS-ios 彩色图片怎么缓慢变成灰度图

灵芸 发布于 2017-09-06 字数 67 浏览 1207 回复 2

ios 彩色图片怎么缓慢变成灰度图,反过来也一样,请问怎么实现?

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

泛泛之交 2017-10-10 2 楼

这是彩色图片转灰度图的代码:
灰度图转彩色应该没有办法吧,除非先保存一下彩色图的原始数据。

+ (UIImage*)getGrayImage:(UIImage*)sourceImage
{
int width = sourceImage.size.width;
int height = sourceImage.size.height;

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
CGContextRef context = CGBitmapContextCreate (nil,width,height,8,0,colorSpace,kCGImageAlphaNone);
CGColorSpaceRelease(colorSpace);

if (context == NULL) {
return nil;
}

CGContextDrawImage(context,CGRectMake(0, 0, width, height), sourceImage.CGImage);
CGImageRef grayImageRef = CGBitmapContextCreateImage(context);
UIImage *grayImage = [UIImage imageWithCGImage:grayImageRef];
CGContextRelease(context);
CGImageRelease(grayImageRef);

return grayImage;
}

偏爱自由 2017-09-18 1 楼

你可以看看CoreImage的library(链接在这儿),里面有个Filter叫CIColorMonoChrome,是可以通过inputIntensity属性调整单色程度的,0为原型,1为完全单色化。
我想你可以用NSTimer来慢慢改变这个filter的inputIntensity属性慢慢变灰。