Olá, galerinha do GUJ!
Tudo bem?
Estou com um pequeno probleminha…
Eu tenho um método que converte uma String para um byte[]:
public byte[] converterImagemParaBytes(String imagem) throws Exception
{
InputStream input = new FileInputStream(imagem);
byte[] buffer = new byte[input.available()];
input.read(buffer);
input.close();
return buffer;
}
Tenho também um método que converte um byte[] para String:
public String converterBytesParaString(byte[] bytes) throws Exception
{
BASE64Encoder encoder = new BASE64Encoder();
String arquivo = encoder.encodeBuffer(bytes);
return arquivo;
}
Beleza… Agora tô com um problema… Como converter uma String, a qual contém os bytes de uma imagem para um objeto Image?
Obrigado pela atenção, fiquem com Deus!
Opa tudo bom!
Cara usa o BASE64Decoder para transformar a String em array de bytes novamente…
byte[] montar = new sun.misc.BASE64Decoder().decodeBuffer(dados);
ControlaArquivos.bytesToImage(montar , "D:/"+ salvarArquivoComo +".png");
e depois chama o seguinte metodo para transformar os bytes em imagem novamente!
public static void bytesToImage(byte[] img, String nome) {
try {
FileOutputStream fos = new FileOutputStream(nome);
fos.write(img);
FileDescriptor fd = fos.getFD();
fos.flush();
fd.sync();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
Espero ter ajudado valeu!
Fala, wolmir!
Tudo bem?
Então, como criar um novo arquivo de imagem eu sei, até esse ponto é tranquilo…
O problema é que eu quero que minha String que contém todos os bytes de uma imagem (por exemplo, “aHsm32k4rhdioa109dk2u8d9j2k390dka\290fkkp122@0p35mmfp-”) se transformem em um objeto Image, para usar no software, pois vou mostrar esse objeto Image na tela. É por aí!
Mas valeu a ajuda! =)
Opa agora entendi!
Cara não tenho certeza mas tenta fazer o seguinte, é um chute mas acredito que funcione!
byte[] montar = new sun.misc.BASE64Decoder().decodeBuffer(StringDaImagem); //monta o array de bytes
ImageIcon icon = new ImageIcon(montar);
icon.getImage(); //obtem a imagem para usar.
Valeu!
E sabe o que é o pior?
É que deu certo!
haha
Valeu, cara, abração!