將RGB 轉換為白色背景的透明RGBA
在白色背景上顯示顏色時,最好將這些顏色調整為透明盡可能同時保留其視覺衝擊力。此過程涉及從 RGB 到 RGBA 的轉換,其中 Alpha 通道決定透明度等級。
RGB 到RGBA 轉換的演算法
以下演算法計算RGBA基於給定RGB 顏色分量的值:
縮放 RGB 分量:
從每個 RGB 分量中減去最小值,然後將結果除以 alpha 值。這會縮放組件:實作:
<code class="javascript">function RGBtoRGBA(r, g, b) { if ((g == null) && (typeof r === 'string')) { var hex = r.replace(/^\s*#|\s*$/g, ''); if (hex.length === 3) { hex = hex.replace(/(.)/g, ''); } r = parseInt(hex.substr(0, 2), 16); g = parseInt(hex.substr(2, 2), 16); b = parseInt(hex.substr(4, 2), 16); } var min = Math.min(r, g, b); var a = (255 - min) / 255; return { r: 0 | (r - min) / a, g: 0 | (g - min) / a, b: 0 | (b - min) / a, a: (0 | 1000 * a) / 1000, rgba: 'rgba(' + r + ', ' + g + ', ' + b + ', ' + a + ')', }; }</code>
範例:
RGBtoRGBA(204, 153, 102) == RGBtoRGBA('#CC9966') == RGBtoRGBA('C96') == { r: 170, g: 85, b: 0, a: 0.6, rgba: 'rgba(170, 85, 0, 0.6)' }
以上是如何將 RGB 顏色轉換為透明 RGBA 顏色以在白色背景上使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!