我需要将一个CMYK图像转换成灰度的CMYK图像。起初,我认为可以使用与RGB->灰度转换相同的方法,如(R + G + B)/ 3或max(r,g,b)/ 2 + min(r,g,b)。但不幸的是,这对于CMYK效果不佳,因为CMY和K是冗余的。并且黑色的cmyk(0,0,0,255)会变成64。我应该只使用
int grayscaled = max((c + m + y) / 3, k)
或许更加困难?我不确定,因为CMYK实际上是一种冗余的颜色模型,同一种颜色可以通过不同方式进行编码。