如何解决作为遮罩的CGImageRef和不是遮罩的CGImageRef有什么区别?
| 我发现“ 0”会创建图像,但不一定总是与“ 1”兼容的掩码。但是,当使用CGImageMaskCreate()时,CGImageRef始终是适用于CGContextClipToMask()
的蒙版。现在,面具VS有何特别之处。 “正常”图片?
我的猜测是该蒙版仅是灰度的,用CGBitmapContextCreateImage()
创建的CGImageRef可能具有刺激CGContextClipToMask()
的RGBA值。我在文档中找不到解释遮罩和CG图像之间确切区别的地方。
但是似乎Core Graphics图像!=蒙版,而mask == Core Graphics图像
解决方法
图像中的每个值(无论是RGB,CMYK还是灰度)都表示特定颜色空间中的位置。问“在色彩空间\'x \'中该值是多少?”很有意义-如果可能,结果将是相同的颜色,但可能是不同的数值。
例如(简单地)。值为(255,255,255)的像素在RGB色彩空间中为白色,而在(假设的)CMY色彩空间中为黑色。将白色RGB像素转换为CMY色彩空间将得到值(0,0)。换句话说,图像必须具有色彩空间,仅在具有色彩空间的情况下才有意义。
相反,8位掩码表示介于0-255之间的绝对值。没有色彩空间,在特定色彩空间中考虑遮罩没有任何意义。
这样,即使我们经常将蒙版视为灰度图像,图像和蒙版也从根本上有所不同。
, Core Graphics中的图像蒙版是一种特殊的图像。从“ 5”参考中:
Quartz位图图像蒙版的使用方式与艺术家使用丝网印刷或标志画家使用模板的方式相同。位图表示通过其传输颜色的蒙版。位图本身没有颜色。它从图形状态中当前设置的填充颜色中获取颜色。
当您使用位图图像蒙版绘制上下文时,Quartz使用该蒙版来确定将当前填充颜色应用于图像矩形的位置和方式。遮罩中的每个样本值指定在特定位置遮罩多少当前填充颜色。有效地,样本值指定蒙版的不透明度。较大的值表示较高的不透明度,因此将较少的颜色应用于页面。
在此处查看更多信息:http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/CGImage/Reference/reference.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。