下面是内存溢出 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处理图片颜色代码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)