Search in sources :

Example 1 with Rgb

use of uk.me.parabola.imgfmt.app.typ.Rgb in project mkgmap by openstreetmap.

the class CommonSection method readColourInfo.

/**
 * Read the colour lines from the XPM format image.
 */
protected ColourInfo readColourInfo(TokenScanner scanner, String header) {
    ColourInfo colourInfo = new ColourInfo();
    parseXpmHeader(scanner, colourInfo, header);
    for (int i = 0; i < colourInfo.getNumberOfColours(); i++) {
        scanner.validateNext("\"");
        int cpp = colourInfo.getCharsPerPixel();
        Token token = scanner.nextRawToken();
        String colourTag = token.getValue();
        while (colourTag.length() < cpp) colourTag += scanner.nextRawToken().getValue();
        colourTag = colourTag.substring(0, cpp);
        scanner.validateNext("c");
        String colour = scanner.nextValue();
        if (colour.charAt(0) == '#') {
            colour = scanner.nextValue();
            colourInfo.addColour(colourTag, new Rgb(colour));
        } else if (colour.equalsIgnoreCase("none")) {
            colourInfo.addTransparent(colourTag);
        } else {
            throw new SyntaxException(scanner, "Unrecognised colour: " + colour);
        }
        scanner.validateNext("\"");
        readExtraColourInfo(scanner, colourInfo);
    }
    return colourInfo;
}
Also used : SyntaxException(uk.me.parabola.mkgmap.scan.SyntaxException) Token(uk.me.parabola.mkgmap.scan.Token) Rgb(uk.me.parabola.imgfmt.app.typ.Rgb) ColourInfo(uk.me.parabola.imgfmt.app.typ.ColourInfo)

Aggregations

ColourInfo (uk.me.parabola.imgfmt.app.typ.ColourInfo)1 Rgb (uk.me.parabola.imgfmt.app.typ.Rgb)1 SyntaxException (uk.me.parabola.mkgmap.scan.SyntaxException)1 Token (uk.me.parabola.mkgmap.scan.Token)1