Erzeugen der entgegengesetzten Farbe einer gegebenen Farbe
Bei diesem Problem besteht das Ziel darin, eine Farbe zu erzeugen, die das Gegenteil einer gegebenen Farbe ist Farbe. Die Gegenfarbe bezieht sich auf den dunklen/hellen Aspekt. Wenn die gegebene Farbe beispielsweise Schwarz ist, wäre die Gegenfarbe Weiß.
Um diese Gegenfarbe zu erzeugen, ist eine Funktion namens create_opp_color() erforderlich. Diese Funktion sollte die aktuelle Farbe als Argument akzeptieren und die entgegengesetzte Farbe zurückgeben. So gehen Sie diese Aufgabe an:
Funktionsimplementierung:
Implementierung in JavaScript:
function create_opp_color(currentColor) { if (currentColor.indexOf('#') === 0) { currentColor = currentColor.slice(1); } if (currentColor.length === 3) { currentColor = currentColor.repeat(2); } const rgb = hexToRgb(currentColor); const invertedRgb = { r: 255 - rgb.r, g: 255 - rgb.g, b: 255 - rgb.b }; const invertedHex = rgbToHex(invertedRgb); return '#' + invertedHex; } function rgbToHex(rgb) { let hex = ''; for (const key in rgb) { if (rgb.hasOwnProperty(key)) { const component = rgb[key].toString(16); hex += component.length === 1 ? '0' + component : component; } } return hex; } function hexToRgb(hex) { let rgb = {}; ['r', 'g', 'b'].forEach((key, i) => { rgb[key] = parseInt(hex.substr(i * 2, 2), 16); }); return rgb; }
Fortgeschrittene Technik:
Wenn Sie mehr Kontrast benötigen, können Sie Schwarz oder Weiß als Gegenfarbe verwenden, basierend auf der Helligkeit der Originalfarbe. Hier ist eine modifizierte Funktion, um das zu tun:
function create_opp_color(currentColor) { if (currentColor.indexOf('#') === 0) { currentColor = currentColor.slice(1); } if (currentColor.length === 3) { currentColor = currentColor.repeat(2); } const rgb = hexToRgb(currentColor); const brightness = Math.round((rgb.r * 0.299 + rgb.g * 0.587 + rgb.b * 0.114) / 255 * 100); return brightness > 50 ? '#000000' : '#FFFFFF'; }
Jetzt können Sie mit dieser Funktion ganz einfach die Gegenfarbe einer beliebigen Farbe erzeugen, egal ob sie hell oder dunkel ist.
Das obige ist der detaillierte Inhalt vonWie erzeugt man die entgegengesetzte Farbe einer bestimmten Farbe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!