/** * Copyright (c) The openTCS Authors. * * This program is free software and subject to the MIT license. (For details, * see the licensing information (LICENSE.txt) you should have received with * this copy of the software.) */ package org.opentcs.util; import java.awt.Color; import static java.util.Objects.requireNonNull; import javax.annotation.Nonnull; /** * Provides utilty methods for working with colors. * * @author Stefan Walter (Fraunhofer IML) */ public class Colors { /** * Prevents instantiation of this utility class. */ private Colors() { } /** * Returns a hexadecimal representation of the given color in the RGB color space. * <p> * The pattern of the strings returned by this method is {@code "#RRGGBB"}. * </p> * * @param color The color to be encoded. * @return The representation of the given color. */ @Nonnull public static String encodeToHexRGB(@Nonnull Color color) { requireNonNull(color, "color"); return String.format("#%06X", color.getRGB() & 0x00FFFFFF); } /** * Returns a {@code Color} instance described by the given hexadecimal representation. * * @param rgbHex The hexadecimal representation of the color to be returned in the RGB color * space. * * @return A {@code Color} instance described by the given value. * @throws NumberFormatException If the given string cannot be parsed. */ @Nonnull public static Color decodeFromHexRGB(@Nonnull String rgbHex) throws NumberFormatException { requireNonNull(rgbHex, "rgbHex"); return Color.decode(rgbHex); } }