Python 中的 CMY 和 CMYK 颜色模型


CMYCMYK 颜色模型是用于印刷和图形设计的减色颜色模型。在 Python 中,我们可以使用各种库和工具来处理这些颜色模型。让我们详细了解每个颜色模型。

CMY 颜色模型

CMY 颜色模型,也称为减色颜色模型,是一个用于在印刷、绘画和图形设计等各种应用中混合颜色的系统。CMY 代表青色 (Cyan)、品红色 (Magenta) 和黄色 (Yellow),它们是该模型中的原色。

在 CMY 颜色模型中,颜色是通过从白光中减去不同量的青色、品红色和黄色颜料来创建的。每种颜料的含量越多,它减去的光就越多,从而导致对不同颜色的感知。以下是 CMY 模型中每种原色的详细解释。

  • 青色 (C) − 青色是一种蓝绿色。它吸收红光,只允许绿光和蓝光反射,使其呈现其特征颜色。

  • 品红色 (M) − 品红色是一种紫红色。它吸收绿光,只允许红光和蓝光反射,使其呈现其特征颜色。

  • 黄色 (Y) − 黄色是一种明亮的颜色。它吸收蓝光,只允许红光和绿光反射,使其呈现其特征颜色。

CMY 模型

为了使用 CMY 模型创建不同的颜色,三种原色以不同的比例组合。以下几点定义了 CMY 颜色模型中颜色混合的工作方式。

  • 青色和品红色颜料的组合吸收红光和绿光,从而感知蓝光。这种混合产生蓝色阴影。

  • 青色和黄色颜料的组合吸收红光和蓝光,从而感知绿光。这种混合产生绿色阴影。

  • 品红色和黄色颜料的组合吸收绿光和蓝光,从而感知红光。这种混合产生红色阴影。

  • 以相等的比例组合三种原色青色、品红色和黄色会吸收红、绿和蓝三种原色光,导致反射光消失,显示为黑色。

在 CMY 颜色模型中,三种原色青色、品红色和黄色的缺失代表白色。这与加色模型 RGB 相反,在 RGB 模型中,三种原色红、绿和蓝的缺失代表黑色。

要在 Python 中使用 CMY 颜色模型,我们可以使用 PIL(Python 图像库)或 matplotlib 等库。这些库提供创建图像、设置像素值、检索颜色信息和使用 CMY 颜色模型执行各种操作的功能。

示例

在这个例子中,我们使用元组 (0.5, 0.2, 0.5) 定义 CMY 颜色,其中每个值分别代表青色、品红色和黄色分量。我们使用 plt.subplots() 创建一个图形,并添加一个具有给定 CMY 颜色 fc=cmy_color 的矩形补片。ax.set_aspect('equal') 行确保保持绘图的纵横比以显示正方形。

import matplotlib.pyplot as plt
# CMY color model
cmy_color = (0.5, 0.2, 0.5)  # CMY values range from 0 to 1
# Create a figure with a colored rectangle
fig, ax = plt.subplots()
ax.add_patch(plt.Rectangle((0, 0), 1, 1, fc=cmy_color, ec='black'))
ax.set_aspect('equal')  # Set aspect ratio to maintain square shape
# Display the figure
plt.show()

输出

CMYK 颜色模型

CMYK 颜色模型也是一种减色颜色模型,用于印刷和图形设计。CMYK 代表青色 (Cyan)、品红色 (Magenta)、黄色 (Yellow) 和黑色 (Key)。CMYK 模型通过从白色背景中减去不同量的墨水或颜料来产生颜色。

CMYK 颜色模型使用百分比系统,其中每个分量由 0 到 100 的值表示。值 0 表示没有墨水或颜料,而值 100 表示该分量的最大墨水或颜料量。例如,纯青色表示为 (100, 0, 0, 0),表示 100% 青色和 0% 品红色、黄色和黑色。以下是 CMYK 模型中每种原色的详细解释。

  • 青色 − 青色表示青色墨水的强度。它吸收红光并反射绿光和蓝光。高水平的青色会导致更强烈的蓝色和绿色。

  • 品红色 − 品红色表示品红色墨水的强度。它吸收绿光并反射红光和蓝光。更高水平的品红色会产生更强的红色和紫色。

  • 黄色 − 黄色表示黄色墨水的强度。它吸收蓝光并反射红光和绿光。更高水平的黄色会产生鲜艳的黄色和橙色。

  • 黑色 (Key) − 黑色表示黑色墨水的强度。黑色分量添加到 CMY 墨水中,以获得更好的对比度、改进的阴影细节以及更准确的深色再现。

示例

在这个例子中,mcolors.to_rgb() 用于将 CMYK 值 (0.3, 0.6, 0.5, 0.8) 转换为 matplotlib 库可以使用的 RGB 等效值。接下来,使用 matplotlib 中可用的 plt.subplots() 函数创建图形和坐标轴。

使用 plt.Rectangle() 创建一个矩形补片,并将其 facecolor 参数设置为 CMYK 颜色。使用 ax.add_patch() 将矩形添加到坐标轴,并将坐标轴限制设置为 (0, 1) 以确保整个矩形可见。纵横比设置为“equal”以保持绘图的正方形形状。最后,使用 plt.show() 显示绘图。

import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
# Create a CMYK color
cmyk_color = mcolors.to_rgb((0.3, 0.6, 0.5, 0.8))  # CMYK values range from 0 to 1
# Create a figure and axes
fig, ax = plt.subplots()
# Draw a rectangle filled with the CMYK color
rectangle = plt.Rectangle((0.2, 0.2), 0.6, 0.6, facecolor=cmyk_color)
ax.add_patch(rectangle)
# Set the axis limits
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
# Set the aspect ratio
ax.set_aspect('equal')
# Show the plot
plt.show()

输出

更新于:2023年8月2日

1K+ 浏览量

开启您的 职业生涯

完成课程获得认证

开始学习
广告