BufferedImage, PNG, Kan kun få grå billeder
Jeg vil gerne lave et program der tager et billede, laver det om til PNG og komprimerer det til 16 farver.Men jeg kan ikke få billedet i farver. Det gemmes i gråtoner.
Hvad gør jeg forkert?
Her følger eksempel, fil ColorTest.java:
*******************************************************
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.awt.image.IndexColorModel;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
public class ColorTest {
public static void main(String[] args) throws IOException {
URL imageURL =
new URL("http://www.google.com/images/web_logo_left.gif");
BufferedImage bufferedImage = ImageIO.read(imageURL);
ImageIO.write(
bufferedImage,
"jpeg",
new File("C:\\temp\\test\\web_logo_left.jpg"));
byte[] colors = new byte[6];
int b = 0xff / (colors.length - 1);
for (int i = 0; i < colors.length; i++) {
colors[i] = (byte) (b * i);
}
IndexColorModel colorModel =
new IndexColorModel(4, colors.length, colors, colors, colors);
BufferedImage image =
new BufferedImage(
bufferedImage.getWidth(),
bufferedImage.getHeight(),
BufferedImage.TYPE_BYTE_INDEXED,
colorModel);
Graphics2D g = image.createGraphics();
g.drawImage(bufferedImage, null, 0, 0);
ImageIO.write(
image,
"PNG",
new File("C:\\temp\\test\\web_logo_left.png"));
}
}
