Gente, é o seguinte, eu tenho um servlet que gera uma imagem em tempo real e manda para uma página. Ok!
A imagem é gerada, porém, eu não consigo colocar cor nas modificações que faço.
Funciona assim, eu tenho uma imagem de fundo. Essa é imutável. Eu carrego a imagem e nela eu desenho uma escala, um ponteiro e os valores.
Só que essa escala e o ponteiro só aparecem branco. Eu não estou conseguindo mudar a cor para a que preciso.
Meu código é assim:
BufferedImage image = new BufferedImage(100,100, BufferedImage.TYPE_INT_RGB);
ByteArrayOutputStream jpegStream = new ByteArrayOutputStream();
//mando para tela:
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(jpegStream);
encoder.encode(image);
//Transferenciz de dados
byte[] jpegBytes = jpegStream.toByteArray();
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("image/jpeg");
out.write(jpegBytes);
out.flush();
out.close()
Bom, o código que desenha o que preciso desenhava num applet e funcionava perfeitamente. Quando eu mandei para JPEG, até que está desenhando, mas onde eu pinto e seto a cor com setColor() ou setPaint(), simplesmente não está funcionado. Desenha sempre em branco.
O que eu preciso saber é que eu tenho que fazer para setar a cor numa BufferedImage?
o trecho de código que uso é esse:
image.getGraphics().setPaint(Color.BLACK); // tentei usar tb o setColor()
image.getGraphics().drawString("blablabalblabla", x,y);
Porque que isso não funciona? Por que só pinta de branco a coisa da string desenhada e das retas?