iOS处理图片颜色代码

iOS处理图片颜色代码,第1张

概述iOS处理图片颜色代码

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

处理图片颜色- (UIImage*)grayscale:(UIImage*)anImage type:(int)type{    CGImageRef imageRef = anImage.CGImage;    size_t wIDth  = CGImageGetWIDth(imageRef);    size_t height = CGImageGetHeight(imageRef);    size_t bitsPerComponent = CGImageGetBitsPerComponent(imageRef);    size_t bitsPerPixel = CGImageGetBitsPerPixel(imageRef);    size_t bytesPerRow = CGImageGetBytesPerRow(imageRef);    CGcolorSpaceRef colorSpace = CGImageGetcolorSpace(imageRef);    CGBitmAPInfo bitmAPInfo = CGImageGetBitmAPInfo(imageRef);    bool shouldInterpolate = CGImageGetShouldInterpolate(imageRef);    CGcolorRenderingIntent intent = CGImageGetRenderingIntent(imageRef);    CGDataProvIDerRef dataProvIDer = CGImageGetDataProvIDer(imageRef);    CFDataRef data = CGDataProvIDercopyData(dataProvIDer);    UInt8 *buffer = (UInt8*)CFDataGetBytePtr(data);    NSUInteger  x,y;    for (y = 0; y < height; y++) {        for (x = 0; x < wIDth; x++) {            UInt8 *tmp;            tmp = buffer + y * bytesPerRow + x * 4;            UInt8 red,green,blue;            red = *(tmp + 0);            green = *(tmp + 1);            blue = *(tmp + 2);            UInt8 brightness;                         switch (type) {                case 1:                    brightness = (77 * red + 28 * green + 151 * blue) / 256;                    *(tmp + 0) = brightness;                    *(tmp + 1) = brightness;                    *(tmp + 2) = brightness;                    break;                case 2:                    *(tmp + 0) = red;                    *(tmp + 1) = green * 0.7;                    *(tmp + 2) = blue * 0.4;                    break;                case 3:                    *(tmp + 0) = 255 - red;                    *(tmp + 1) = 255 - green;                    *(tmp + 2) = 255 - blue;                    break;                default:                    *(tmp + 0) = red;                    *(tmp + 1) = green;                    *(tmp + 2) = blue;                    break;            }         }    }    CFDataRef effectedData = CFDataCreate(NulL,buffer,CFDataGetLength(data));    CGDataProvIDerRef effectedDataProvIDer = CGDataProvIDerCreateWithCFData(effectedData);    CGImageRef effectedCgImage = CGImageCreate(                                               wIDth,height,bitsPerComponent,bitsPerPixel,bytesPerRow,colorSpace,bitmAPInfo,effectedDataProvIDer,NulL,shouldInterpolate,intent);    UIImage *effectedImage = [[UIImage alloc] initWithCGImage:effectedCgImage];    CGImageRelease(effectedCgImage);    CFRelease(effectedDataProvIDer);    CFRelease(effectedData);    CFRelease(data);    return effectedImage;}

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的iOS处理图片颜色代码全部内容,希望文章能够帮你解决iOS处理图片颜色代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1106653.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存