Recortar imagem de um arquivo [RESOLVIDO]

1 resposta
L

O problema é o seguinte…

tenho vários arquivos png sem fundo cuja as dimensões são 46 de largura e 150 de altura…todos os arquivos possuem as mesmas dimensões…
Porém a imagem do arquivo mede 46 de largura por 80…(Todas também)… o restante da imagem é fundo invisível…
Essas imagens são geradas por outro sistema sempre do mesmo tamanho…

A única coisa que diferencia as imagens umas das outras além da foto em si…seria a posição da imagem sobre o fundo … por exemplo uma imagem pode estar no topo…a outra pode estar centralizada…enfim…

O que presciso saber… é se tem como eu localizar a imagem e retirar o restante não utilizável deixando só o desenho no arquivo e não aquele meio metro de fundo invisível junto…

Tipo… fazer uma função que faz a mesma coisa que o “Recortar com cuidado” do editor de imagens GIMP…

pois tenho que mostrar estas imagens numa tela…só que se eu colocar assim, algumas vão ficar na parte superior, outras na inferior…

1 Resposta

L

Achei uma solução… , talvez não seja a melhor…mas funcionou…

usei o comando abaixo para capturar os pixels da imagem

WritableRaster r = img.getRaster();

onde img seria meu BufferedImage que tem a imagem carregada

depois foi só pegar pixes a pixel procurando pelos rgb diferente de 000 (quanto não tem fundo, ou seja o fundo tranparente, o rgb da imagem para este caso vem sempre 000) , então peguei as posições de início e fim da imagem, tamanho, altura, etc… e criei uma subImagem usando o comando do BufferedImage mesmo assim

img  = img.getSubimage(x,y, larguraImagem,alturaImagem);

Lembrando que img é meu objeto BufferedImage

Criado 6 de fevereiro de 2012
Ultima resposta 6 de fev. de 2012
Respostas 1
Participantes 1