關於顏色模型的考慮

來源:互聯網
上載者:User

在整理功能時,突然意識到了 GDI+ 的一個重大限制:它僅僅支援 RGB 顏色模型。而平面繪圖軟體,至少應當是支援 RGB 和 CMYK 色彩空間的,GDI+ 由於僅僅用於螢幕繪圖,僅需要與顯示裝置打交道,此根本沒有考慮過 RGB 之外的色彩模型。這對於我們的 OpenPainter 來說,是一個很大的限制。

Photoshop 支援位元影像、灰階、RGB、CMYK、HSB、Lab、多通道及索引模式這幾種顏色模式,對於灰階、RGB、CMYK、HSB、Lab及多通道這幾種模式來說,還分 8 位、16 位、32 位三種色彩深度。我總是希望能夠儘可能地利用 GDI+ 的既有功能,因此開始分析這些不同的模式。雖然說 RGB、CMYK、HSB、Lab 這些色彩空間的運演算法則完全不同,但有一點是相同的,即它們都是由多個互相獨立的通道組成。事實上,如果不考慮將圖片顯示出來的話,僅僅是繪圖操作與儲存,不同的顏色模式之間沒有任何區別——無非是將每個像素根據通道數拆分成幾個子像素,每個子像素根據所屬通道的不同具有自己的取值範圍而已。基於這個結論,我們可以將任何一種以通道為基礎的色彩空間視為 n 個大小相同的灰階映像的組合。例如 RGB-8bits 映像即是由三個同尺寸的 8 位灰階映像合成的,分別代表 R、G、B 三個通道的亮度;而 CMYK-16bits 映像即是由四個同尺寸的 16 位灰階映像合成的,分別代表 C、M、Y、K 四個通道的色彩深度等等。

這麼做其實可以很好地解決任何一種通道色彩模型,但限制很快又出現了,GDI+ 並不支援 8 位的灰階映像,而 8 位色彩深度是目前最為常用的。這使得我們幾乎無法用剛才的方式來類比通道色彩模型,而且每個通道單獨繪製,也需要反覆進行子像素亮度提取與繪製操作。無論是光柵位置的計算還是色彩混合操作次數都成倍增長,使 GDI+ 原本就不好的效能損失更大。

由於無法解決色彩模型這一根本限制,我們不得拋棄 GDI+,考慮基於 GDI 開發自己的圖形庫。這將意味著我們必須自己實現形狀繪製、文本繪製、反走樣、色彩混合、映像變換等基本的圖形處理功能。鑒於這將是一個巨大的工程,我們可能在第一個公開預覽版本中只支援 RGB-8bits 模式,繼續使用 GDI+ 作為圖形庫。並在軟體成型的基礎上,逐步將其替換出來。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.