Deixar imagem (foto) em preto e branco [Resolvido]
10 respostas
A
Andre_Rosa
Olá,
Nunca trabalhei com manipulação de imagens em Java, e agora acabei me interessando por isso. O que eu quero fazer é algo que não parece ser tão complicado, visto que as APIs da linguagem Java atendem várias demandas e necessidades do programador. Qual seria a melhor forma de transformar uma foto colorida em uma foto em preto-e-branco?
O código desse tópico está fazendo algumas coisas estranhas, como ler a altura e largura da imagem (que são int) em variáveis double, e depois fazer o cast novamente para int no construtor do bufferedimage.
Para um exemplo mais conciso e completo, dê uma olhada:
Também mostra como fazer binarização (ou seja, deixar a imagem realmente preta-e-branca).
L
labavel
ViniGodoy
Baseado em seu codigo onde eu tranformo a imagem ou converto em
compressão LZW com 300 dpi e se possivel for espelhado ?
A
Andre_Rosa
ViniGodoy:
O código desse tópico está fazendo algumas coisas estranhas, como ler a altura e largura da imagem (que são int) em variáveis double, e depois fazer o cast novamente para int no construtor do bufferedimage.
Para um exemplo mais conciso e completo, dê uma olhada:
Também mostra como fazer binarização (ou seja, deixar a imagem realmente preta-e-branca).
Obrigado, ViniGodoy. Seu código me parece um pouco mais complicado, vou tentar entende-lo.
Obrigado.
V
ViniGodoy
Andre Rosa:
ViniGodoy:
O código desse tópico está fazendo algumas coisas estranhas, como ler a altura e largura da imagem (que são int) em variáveis double, e depois fazer o cast novamente para int no construtor do bufferedimage.
Para um exemplo mais conciso e completo, dê uma olhada:
Também mostra como fazer binarização (ou seja, deixar a imagem realmente preta-e-branca).
Obrigado, ViniGodoy. Seu código me parece um pouco mais complicado, vou tentar entende-lo.
Obrigado.
Não se assuste, a função que faz a conversão da imagem para preto e branco é só essa aqui, quase idêntica a que o colega postou no exemplo:
Não é certo falar preto e branco. Isso são para imagens limiarizadas(binarizadas - imagens com 2 bits por pixel).
Imagem na escala de cinza ou luminância, com apenas 8 bits por pixel(uma banda de cor).
A
Andre_Rosa
ViniGodoy:
Andre Rosa:
ViniGodoy:
O código desse tópico está fazendo algumas coisas estranhas, como ler a altura e largura da imagem (que são int) em variáveis double, e depois fazer o cast novamente para int no construtor do bufferedimage.
Para um exemplo mais conciso e completo, dê uma olhada:
Também mostra como fazer binarização (ou seja, deixar a imagem realmente preta-e-branca).
Obrigado, ViniGodoy. Seu código me parece um pouco mais complicado, vou tentar entende-lo.
Obrigado.
Não se assuste, a função que faz a conversão da imagem para preto e branco é só essa aqui, quase idêntica a que o colega postou no exemplo:
/**
* Converte a imagem para escala de cinza.
*
* @param image Imagem a ser convertida
* @return a Imagem convertida.
*/
private static BufferedImage toGrayscale(BufferedImage image) {
BufferedImage output = new BufferedImage(image.getWidth(),
image.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
Graphics2D g2d = output.createGraphics();
g2d.drawImage(image, 0, 0, null);
g2d.dispose();
return output;
}
Obrigado, bem mais amigável, hehe.
juliocbq:
Não é certo falar preto e branco. Isso são para imagens limiarizadas(binarizadas - imagens com 2 bits por pixel).
Imagem na escala de cinza ou luminância, com apenas 8 bits por pixel(uma banda de cor).
Puxa, eu não sabia a diferença. O que eu procurava, então, era imagens na escala de cinza ou luminância. Feito!
Muito obrigado a todos.
J
juliocbq
Cometi um erro lá em cima(estava pensando em 2 valores, preto ou branco e acabei passando isso pro texto).
1 bit por pixel = 2^1 para imagens monocromáticas(preto e branco)