Mude o tipo de retorno de sua função Java para byte[]. Além disso, não use NewStringUTF. Use a função do JNI adequada para alocar arrays de bytes.
É que a tal função que você quer chamar (NewStringUTF) está parando no primeiro zero binário que ela está encontrando, ou seja, um pouquinho depois do cabeçalho PNG.
Não confunda Strings do Java com char *, são coisas distintas. A primeira lida com caracteres Unicode; a segunda com bytes.
J
jrbruno
Valeu Thiago
Deu certo.
Agora eu estou precisando imprimir esse byte[] no navegador.
Eu estou utilizando o PrintWriter out = response.getWriter();
Na API não tem nada falando de byte[].
Como faço para colcoar essa imagem (byte[]) no navegador??
Junior Bruno
T
thingol
Não é para usar o PrintWriter (que serve só para HTML) e sim alguma OutputStream (que serve para dados binários). Cheque na sua documentação como obter o OutputStream (para você usar o método “write”, que aceita um array de byte.) Deve ser algo parecido com request.getOutputStream ou coisa parecida, nunca sei essas coisas de cor.
J
jrbruno
Não estou conseguindo
Poderia me passar um exemplo??
Valeu
Junior Bruno
J
jrbruno
Para o conhecimento de todos olhem o que eu fiz para solucionar o problema do JNI.