Heim > Artikel > Web-Frontend > Wie kann ich eine RGB-Farbe in eine transparente RGBA-Farbe umwandeln, um sie auf einem weißen Hintergrund zu verwenden?
RGB in transparentes RGBA für weißen Hintergrund konvertieren
Bei der Anzeige von Farben auf einem weißen Hintergrund ist es wünschenswert, diese Farben so anzupassen, dass sie transparent erscheinen möglichst unter Beibehaltung ihrer optischen Wirkung. Dieser Prozess beinhaltet eine Transformation von RGB zu RGBA, wobei der Alphakanal den Grad der Transparenz bestimmt.
Algorithmus für die RGB-zu-RGBA-Konvertierung
Der folgende Algorithmus berechnet den RGBA Werte basierend auf den angegebenen RGB-Farbkomponenten:
RGB-Komponenten skalieren: Subtrahieren Sie das Minimum von jeder RGB-Komponente und dividieren Sie das Ergebnis durch Alpha-Wert. Dadurch werden die Komponenten skaliert:
Implementierung:
<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>
Beispiel:
RGBtoRGBA(204, 153, 102) == RGBtoRGBA('#CC9966') == RGBtoRGBA('C96') == { r: 170, g: 85, b: 0, a: 0.6, rgba: 'rgba(170, 85, 0, 0.6)' }
Das obige ist der detaillierte Inhalt vonWie kann ich eine RGB-Farbe in eine transparente RGBA-Farbe umwandeln, um sie auf einem weißen Hintergrund zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!