getOverlaidColor static method
Implementation
static String getOverlaidColor(
String mainColor, String colorOverlay, double opacityOverlay) {
if (mainColor.length == 7) mainColor = mainColor.substring(1);
final R = int.parse(mainColor.substring(0, 2), radix: 16);
final G = int.parse(mainColor.substring(2, 4), radix: 16);
final B = int.parse(mainColor.substring(4, 6), radix: 16);
if (colorOverlay.length == 7) colorOverlay = colorOverlay.substring(1);
final overlayR = int.parse(colorOverlay.substring(0, 2), radix: 16);
final overlayG = int.parse(colorOverlay.substring(2, 4), radix: 16);
final overlayB = int.parse(colorOverlay.substring(4, 6), radix: 16);
final finalColorR =
(R * (1.0 - opacityOverlay) + overlayR * opacityOverlay).round();
final finalColorG =
(G * (1.0 - opacityOverlay) + overlayG * opacityOverlay).round();
final finalColorB =
(B * (1.0 - opacityOverlay) + overlayB * opacityOverlay).round();
final overlaidR =
finalColorR < 10 ? "0$finalColorR" : finalColorR.toRadixString(16);
final overlaidG =
finalColorG < 10 ? "0$finalColorG" : finalColorG.toRadixString(16);
final overlaidB =
finalColorB < 10 ? "0$finalColorB" : finalColorB.toRadixString(16);
return "#$overlaidR$overlaidG$overlaidB";
}