view gnv-artifacts/src/main/java/de/intevation/gnv/raster/RasterToPPM.java @ 799:feeaf5aec552

ISSUE213: Wrong Geometrytype used for the generation of an Layer with Multipolygon-Geometries gnv-artifacts/trunk@881 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Tue, 06 Apr 2010 11:56:53 +0000
parents c4156275c1e1
children d766fe2d917a
line wrap: on
line source
package de.intevation.gnv.raster;

import java.awt.Color;

import java.io.IOException;
import java.io.OutputStream;

/**
 * @author <a href="mailto:sascha.teichmann@intevation.de">Sascha L. Teichmann</a>
 */
public class RasterToPPM
{
    private RasterToPPM() {
    }

    public static void writeToPPM(Raster raster, Palette palette, OutputStream out)
    throws IOException
    {
        int W = raster.getWidth();
        int H = raster.getHeight();
        out.write(("P6\n" + W + " " + H + "\n255\n").getBytes("US-ASCII"));
        double [] values = raster.getValues();
        int pos = 0;
        byte [] data = new byte[W*3];
        int black = Color.BLACK.getRGB();
        for (int i = 0; i < H; ++i) {
            for (int j = 0; j < data.length; ++pos) {
                Palette.Entry entry = palette.getEntry(values[pos]);
                int rgb = entry == null
                    ? black
                    : entry.getColor().getRGB();
                data[j++] = (byte)((rgb >> 16) & 0xff);
                data[j++] = (byte)((rgb >>  8) & 0xff);
                data[j++] = (byte)( rgb        & 0xff);
            }
            out.write(data);
        }
        out.flush();
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org