2015-08-28 52 views
0
- (UIImage *)pureBlackAndWhiteImage:(UIImage *)image { 

unsigned char *dataBitmap = [self bitmapFromImage:image]; 

for (int i = 0; i < image.size.width * image.size.height * 4; i += 4) { 

    if ((dataBitmap[i + 1] + dataBitmap[i + 2] + dataBitmap[i + 3]) < (255 * 3/2)) { 
     dataBitmap[i + 1] = 0; 
     dataBitmap[i + 2] = 0; 
     dataBitmap[i + 3] = 0; 
    } else { 
     dataBitmap[i + 1] = 255; 
     dataBitmap[i + 2] = 255; 
     dataBitmap[i + 3] = 255; 
    } 
} 

image = [self imageWithBits:dataBitmap withSize:image.size]; 

return image; 

}添加阈值定义黑白过滤

我很新的使用核心映像。我在网上发现了这个代码,它所做的是将图像转换为纯黑色和白色(无灰色)。我想要做的是能够修改阈值。意思是我想让它变得更白或更黑。我将如何做到这一点?

回答

0

(255 * 3/2)表达式,直到你满意为止。
此值越高,您将拥有的黑色像素越多。

+0

是的,我怀疑,但我不明白为什么他不写一个数字,如果这是门槛。他在计算什么? – user5227744

+0

255是颜色通道的最大值。有3个颜色通道添加,所以他乘以3,但将它除以2设置阈值。这只是一种明确写出他思想的方式。你可以放一个整数,它也会起作用;) –

相关问题