Eu quero criar outro BufferedImage mas que seja uma imagem completamente cinza. Como posso fazer?
Para ser mais precisa eu quero criar uma imagem que tenha um tamanho que não é padrão, ou seja, o tamanho vai depender do mapWidth e do mapHeight do primeiro BufferedImage. Mas essa imagem é apenas formada da cor cinza.
Obrigada
Muito legal essa página Vini, mas eu creio q eu precise de alguma coisa muito mais simples. Quero criar um BufferedIamge de tamanho x,y (altura, largura) preenchido com a cor cinza.
V
ViniGodoy
Você pode usar o TYPE_BYTE_GRAY ou o TYPE_USHORT_GRAY.
O segundo tem mais tons de cinza que o primeiro.
É isso mesmo. Mas essa imagem, criada com o tipo de GRAY nunca poderá ter cor. Se você quiser que tenha cor, crie com o mesmo tipo da anterior e use o mesmo método de desenho que vc já usou.
O
oitathi
Desculpa Vini, mas eu não entendi o que vc disse…
eu teria que fazer assim então:
O tipo da imagem, que define quantos bytes ela gastará para representar cores, quais cores serão representadas e de que forma (indexada ou direta);
A imagem em si.
Você pode ter uma imagem que suporte o desenho colorido, mas que casualmente só foi desenhado com cinza (ou seja, uma imagem do tipo INT_RGB ou INT_ARGB, pintada inteiramente de cinza).
E você pode ter uma imagem que só tenha tons de cinza, e jamais vá aceitar qualquer tipo de cor (do tipo GRAY). Nesse caso, se você pintar cores na imagem, elas serão convertidas para um tom de cinza.
A questão é, o que você precisa?
O
oitathi
"E você pode ter uma imagem que só tenha tons de cinza, e jamais vá aceitar qualquer tipo de cor (do tipo GRAY). Nesse caso, se você pintar cores na imagem, elas serão convertidas para um tom de cinza. " Eu preciso disso. Então, para que isso aconteça, eu devo excluir a linha onde eu seto uma cor, ou seja, não definir cor alguma, é isso?
gr.setColor(Color.GRAY); // eu devo excluir essa linha do meu código? Ou devo colocar um outro valor aqui?gr.fillRect(0,0,mapWidth+400,mapHeight+400);
V
ViniGodoy
Não, vc ainda precisa do setColor. Ele dirá qual é o tom de cinza a ser usado.
No caso de criar uma imagem com TYPE_USHORT_GRAY, você pode usar qualquer cor (GRAY, RED, YELLOW) que sairá cinza. Só o que muda é o tom. Aí é só achar o tom que você precisa.
O
oitathi
ah tah valeu Vini!!! Entendi… agora soh preciso saber como faço pra colocar tudo isso dentro de um JLabel…
V
ViniGodoy
Você pode colocar no JImagePanel (que aceita um BufferedImage direto).
Ou usar o setIcon do JLabel. Um dos construtores da classe ImageIcon aceita um Image. E todo BufferedImage é um Image.