/*
JWildfire - an image and animation processor written in Java
Copyright (C) 1995-2011 Andreas Maschke
This is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser
General Public License as published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.
This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this software;
if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jwildfire.create.tina.palette;
import org.jwildfire.image.SimpleImage;
import org.jwildfire.transform.ScaleAspect;
import org.jwildfire.transform.ScaleTransformer;
import org.jwildfire.transform.ScaleTransformer.Unit;
public class RGBPaletteRenderer {
public SimpleImage renderHorizPalette(RGBPalette pPalette, int pWidth, int pHeight) {
return renderHorizPalette(pPalette.getTransformedColors(), pWidth, pHeight);
}
public SimpleImage renderHorizPalette(RGBColor[] pColors, int pWidth, int pHeight) {
if (pColors == null || pWidth < 1 || pHeight < 1)
throw new IllegalArgumentException();
SimpleImage img = new SimpleImage(RGBPalette.PALETTE_SIZE, pHeight);
for (int i = 0; i < pColors.length; i++) {
RGBColor color = pColors[i];
if (color == null) {
color = RGBPalette.BLACK;
}
int r = color.getRed();
int g = color.getGreen();
int b = color.getBlue();
for (int j = 0; j < pHeight; j++) {
img.setRGB(i, j, r, g, b);
}
}
if (img.getImageWidth() != pWidth || img.getImageHeight() != pHeight) {
ScaleTransformer scaleT = new ScaleTransformer();
scaleT.setScaleWidth(pWidth);
scaleT.setScaleHeight(pHeight);
scaleT.setAspect(ScaleAspect.IGNORE);
scaleT.setUnit(Unit.PIXELS);
scaleT.transformImage(img);
}
return img;
}
}