001 // License: GPL. Copyright 2007 by Immanuel Scholz and others
002 package org.openstreetmap.josm.tools;
003
004 import java.awt.Color;
005
006 /**
007 * Helper to convert from color to html string and back
008 */
009 public class ColorHelper {
010
011 public static Color html2color(String html) {
012 if (html.length() > 0 && html.charAt(0) == '#')
013 html = html.substring(1);
014 if (html.length() != 6 && html.length() != 8)
015 return null;
016 try {
017 return new Color(
018 Integer.parseInt(html.substring(0,2),16),
019 Integer.parseInt(html.substring(2,4),16),
020 Integer.parseInt(html.substring(4,6),16),
021 (html.length() == 8 ? Integer.parseInt(html.substring(6,8),16) : 255));
022 } catch (NumberFormatException e) {
023 return null;
024 }
025 }
026
027 private static String int2hex(int i) {
028 String s = Integer.toHexString(i / 16) + Integer.toHexString(i % 16);
029 return s.toUpperCase();
030 }
031
032 public static String color2html(Color col) {
033 if (col == null)
034 return null;
035 return "#"+int2hex(col.getRed())+int2hex(col.getGreen())+int2hex(col.getBlue());
036 }
037 }