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

WP主题Bug提交 WP主题Bug提交 主题:1067 回复:2226

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

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

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

发布评论

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

支持 Markdown 语法,需要帮助?

评论(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属性慢慢变灰。