我发现CGBitmapContextCreateImage()创建了一个图像,它不一定总是与CGContextClipToMask()兼容的掩码。但在使用CGImageMaskCreate()时,CGImageRef始终是与CGContextClipToMask()一起使用的掩码。现在,面具VS的特殊之处在于。“正常”的形象?
我的猜测是,蒙版只是灰度的,而作为一个用CGBitmapContextCreateImage()创建的CGImageRef,可能会有刺激CGContextClipToMask()的RGBA值。我在文档中找不到解释面具和CG图像之间确切区别的地方。
但是似乎核心图形图像!=掩模,而掩模==核心图形图像
发布于 2011-10-09 04:58:08
图像中的每个值,无论是RGB、CMYK还是Greyscale,都代表特定颜色空间中的一个位置。问“这个值在颜色空间‘x’中是什么?”是有意义的,如果可能的话,结果将是相同的颜色,但可以是不同的数值。
(简而言之)值为(255,255,255)的像素在RGB颜色空间中为白色,而在(假设) CMY颜色空间中为黑色。将白色RGB像素转换为CMY颜色空间将得到值(0,0,0)。换句话说,图像必须有色彩空间,它只有在给定色彩空间的情况下才有意义。
相反,8位掩码表示0-255之间的绝对值。没有色彩空间,在特定的色彩空间中考虑蒙版是没有意义的。
在这种情况下,图像和蒙版是根本不同的,即使我们经常认为蒙版是灰度图像。
发布于 2011-10-09 04:06:42
Core Graphics中的图像蒙版是一种特殊的图像。从CGImageMaskCreate参考中:
石英位图图像蒙版的使用方式与美工人员使用丝网印刷或标志画家使用模具的方式相同。位图表示通过其传递颜色的蒙版。位图本身没有颜色。它从当前在图形状态中设置的填充颜色中获取颜色。
当您使用位图图像蒙版绘制上下文时,Quartz使用蒙版来确定将当前填充颜色应用于图像矩形的位置和方式。蒙版中的每个样本值指定在特定位置遮罩了多少当前填充颜色。实际上,采样值指定蒙版的不透明度。值越大,表示不透明度越大,因此应用于页面的颜色越少。
点击此处查看更多信息:http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/CGImage/Reference/reference.html
https://stackoverflow.com/questions/6334074
复制相似问题