[Resolvido]Imagem + RMS

3 respostas
C

Olá a todos do nosso GUJ. Estou com uma grande dúvida aqui, mexo com J2ME a um tempo e me interessei por salvar imagens no RMS. Porém, como as coisas são bem diferentes do nosso J2SE não consegui realmente entender como pegar a imagem e transformá-la em um array de bytes. Sei que não dar para fazer isto diretamente e que tem uma forma usando um OutputStream, infelizmente, não sei como fazer. Só preciso entender como fazê-las e e lê-las. Pesquisei no fórum e perguntei ao Oráculo e não consegui encontrar referências que pudessem me ajudar. Peço que me ajudem e agradeço mesmo.

3 Respostas

aguiaMen
/**
	 * Cria ou atualiza um registro na base de dados. Caso não exista id cria, caso contrário atualiza.
	 * @param id 	Chave primária do registro.
	 * @param xml	Conteudo do registro.
	 * @param v 	Versão do registro.
	 * @throws IOException 
	 * @throws RecordStoreException 
	 * @throws RecordStoreFullException 
	 */
	public void criarOuAtualizarRegistro(String path, byte[] img, String versao) throws IOException, RecordStoreFullException, RecordStoreException{
		ByteArrayOutputStream strByte = new ByteArrayOutputStream(); 	//Escreve dados em um byte array interno.
		DataOutputStream strDataType = new DataOutputStream(strByte);	//Escreve tipo de dados Java no Byte array acima.
		
		//escreve tipo de dados Java.
		strDataType.writeUTF(path);
		strDataType.writeUTF(versao);
		strDataType.write(img);
		strDataType.flush();
		byte[] rec = strByte.toByteArray();		//coloca o stream de dados no byte array e grava o registro
		
		int posReg = getIndiceRegistro(path);
		if (posReg == -1) {		
			rs.addRecord(rec, 0, rec.length);
		}else{
			rs.setRecord(posReg, rec, 0, rec.length);
		}
		strByte.reset();
		strByte.close();
		strDataType.close();
	}
este metodo coloca minhas imagens em rms, gravo tbm duas strings alem do array de bytes. Moleza neh?
JavaES

Dá uma olhada neste link que tem um artigo bacana sobre a sua dúvida: http://www.java-tips.org/java-me-tips/midp/how-to-store-retrieve-image-in-from-rms.html

Para transformar uma imagem em um arry de byte faça o seguinte:

Image img = Image.createImage("/suaimagem.png");
byte [] byteIMG = img.toString().getBytes();
C

Putttzz… por isso que eu amo o GUJ :wink:
Bom, eu estava apenas procurando como transformar a imagem em array de bytes. Métodos de como gravar num RMS eu sei, mas agradeço de coração mesmo a sua contribuição. Aí vem Agora, é só correr atrás de criptografia com os dados porque no link tem como recuperar de um RMS e renderizar no form. Valeu mesmo. Se algum moderador entrar neste tópico pode trancar, irei colocar a TAG [Resolvido].

Criado 5 de agosto de 2009
Ultima resposta 5 de ago. de 2009
Respostas 3
Participantes 3