GOOGLE ADS

Mittwoch, 13. April 2022

Erkennen Sie ähnliche Farben aus Hex-Werten

Kennt jemand eine Möglichkeit, zwei Hex-Farbwerte zu nehmen und eine Art Index zurückzugeben, um zu sagen, wie ähnlich die Farben sind? z. B. könnten zwei Gelbtöne einen höheren Index zurückgeben, dh sie sind ähnlicher als beispielsweise Grau und Gelb?

(Ich verwende Javascript, aber denke, so etwas wäre eine sprachunabhängige Formel/ein Algorithmus)


Lösung des Problems

Hier könnte ein Algorithmus für den Anfang stehen:


const yellow1 = "FFFF99";
const yellow2 = "FFFF00";
const blue = "0000FF";
function hexColorDelta(hex1, hex2) {
// get red/green/blue int values of hex1
var r1 = parseInt(hex1.substring(0, 2), 16);
var g1 = parseInt(hex1.substring(2, 4), 16);
var b1 = parseInt(hex1.substring(4, 6), 16);
// get red/green/blue int values of hex2
var r2 = parseInt(hex2.substring(0, 2), 16);
var g2 = parseInt(hex2.substring(2, 4), 16);
var b2 = parseInt(hex2.substring(4, 6), 16);
// calculate differences between reds, greens and blues
var r = 255 - Math.abs(r1 - r2);
var g = 255 - Math.abs(g1 - g2);
var b = 255 - Math.abs(b1 - b2);
// limit differences between 0 and 1
r /= 255;
g /= 255;
b /= 255;
// 0 means opposite colors, 1 means same colors
return (r + g + b) / 3;
}
console.log(hexColorDelta(yellow1, yellow2)); // 0.7999999999999999
console.log(hexColorDelta(yellow1, blue)); // 0.19999999999999998

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...