Olá pessoal,
sou iniciante em java, estou tentando carregar byte a byte uma imagem Bitmap para com os bytes, tentar compacta-lá.
alguém poderia me ajudar ?
Carregar imagem Bitmap
4 Respostas
Você quer compactar em que? PNG ou algum formato como zip?
Para carregar uma image, basta usar o comando ImageIO.read. Caso queira salvar em PNG ou JPG, basta usar ImageIO.write.
Você também pode usar essa classe para escrever um ByteArrayOuputStream e, ao final, jogar o resultado para um ZipFile ou ZipOutputStream.
Não, é um trabalho da universidade,
eu preciso desenvolver um algoritmo que compacte uma imagem bitmap.
a lógica do algoritmo eu sei, porém n sei os comando em java.
se vc poder me ajudar eu agradeço !
Você pelo menos tentou usar o que eu falei?
Você veria que o ImageIO.read te retorna uma BufferedImage. Essa classe tem um método chamado getRGB que te retorna a cor de um pixel.
Você pode colocar a cor desse pixel num objeto do tipo Color, para saber seus componentes R, G e B.
Ja fiz dessa forma, usando o get.Width, getHeight, getRGB, etc.
O problema é que dessa forma, apesar de ser uma imagem bitmap, não conseguirei compacta-lá.
Como o java “ver” todo arquivo como um conjunto de bits(110011011), com a imagem n seria diferente,
entao quero ler todos os bits da imagem, usando um padrao(de 8 em 8 bits ou de 4 em 4 bits),
e ficar comparando as cadeias de bits, logo quando as cadeias se repetirem, ao ives de repeti-las no “arquivo compactado”
vou escrever apenas uma cadeia e a frequencia com que ela se repete. pretendo fazer isso com todo o arquivo, inclusive o cabeçalho da imagem.
Vc poderia mim ajudar em algo sobre isso ?