Mirror von
https://github.com/GeyserMC/Geyser.git
synchronisiert 2024-12-27 08:30:12 +01:00
Update closest color conversion (#1057)
ViaVersion altered their color conversion to fix an issue and this just copies those changes
Dieser Commit ist enthalten in:
Ursprung
427cb69a14
Commit
50346a95cd
@ -400,13 +400,16 @@ public class MessageUtils {
|
||||
int testB = testColor.getValue() & 0xFF;
|
||||
|
||||
// Check by the greatest diff of the 3 values
|
||||
int rDiff = Math.abs(testR - r);
|
||||
int gDiff = Math.abs(testG - g);
|
||||
int bDiff = Math.abs(testB - b);
|
||||
int maxDiff = Math.max(Math.max(rDiff, gDiff), bDiff);
|
||||
if (closest == null || maxDiff < smallestDiff) {
|
||||
int rAverage = (testR + r) / 2;
|
||||
int rDiff = testR - r;
|
||||
int gDiff = testG - g;
|
||||
int bDiff = testB - b;
|
||||
int diff = ((2 + (rAverage >> 8)) * rDiff * rDiff)
|
||||
+ (4 * gDiff * gDiff)
|
||||
+ ((2 + ((255 - rAverage) >> 8)) * bDiff * bDiff);
|
||||
if (closest == null || diff < smallestDiff) {
|
||||
closest = testColor.getKey();
|
||||
smallestDiff = maxDiff;
|
||||
smallestDiff = diff;
|
||||
}
|
||||
}
|
||||
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren