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+ 瀏覽量

開啟您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.