iOS App页面置灰


App页面置灰,本质是将彩色图像转换为灰度图像,本文提供两种方法实现,一种是App整体置灰,一种是单个页面置灰,可结合具体的业务场景使用。

方法一:分别将图片和文字置灰

一般情况下,App页面的颜色深度是24bit,也就是RGB各8bit;如果算上Alpha通道的话就是32bit,RGBA(或者ARGB)各8bit。灰度图像的颜色深度是8bit,这8bit表示的颜色不是彩色,而是256种不同亮度的黑色或白色。
说到灰度图像,在YUV颜色空间上—其中Y代表亮度,调整Y值就可以得到不同的灰度图像。
理论上,颜色空间RGB和YUV是等价的,同一种颜色用RGB或YUV都可以表示。从RGB数值对应到亮度Y,一般采用公式Y = 0.299R+0.587G+0.114B,得到的结果再填充到RGB上就得到了对应的灰度RGB颜色。

Y = 0.299R+0.587G+0.114B
Gray = RGB(Y,Y,Y)

以上是方法一App页面置灰的原理基础。

UIImage转成灰度图

核心是创建一个灰度空间,然后将图像绘制到这个空间上

-(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); 

  
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值