Como eu posso adaptar esse exemplo para o meu uso, onde pretendo fazer o upload de um arquivo com o rich:fileUpload e após isso, renderizar a imagem no mediaOutput. Esse seria o caso da imagem vinda do disco.
Em outro caso, eu quero pegar a imagem do banco, salva em byte[] (BLOB) e fazer a conversão. A principio estou com dificuldades principalmente na classe MediaBean(em construir o método paint e os argumentos do método…) e a classe MediaData.
No caso, como deveria ser o meu método void paint? Quais argumentos usar. Poderiam dar um exemplo:
A classe MediaBean seria a minha classe do bean onde faço o setLogo() ? Digo, a classe Clube tem um logo (campo byte). Seria nesta classe que eu usaria o paint? Ou na classe de controle da página?
E a classe MediaData devo utilizar a classe do exemplo ou construir uma classe? Neste caso, que atributos deveriam ter esta classe?
e no seu bean crie um metodo com o seguinte formato:
public void getImageFromTimeSeriesChart(OutputStream out, Object data) {
byte b[] = carregue os bytes da sua imagem aki.
BufferedImage result = read(b);
ImageIO.write(result, "png", out);
}
neste metodo eu pego a minha imagem e transformo em um BufferedImage que no caso coloco na variavel result
/**
* // Método que transforma um array de bytes em um BufferedImage
*
* @author LEANDRO de Godoy
* @date 09/08/2010
*
* @param bytes
* @return
*/
public static BufferedImage read(byte[] bytes) {
try {
return ImageIO.read(new ByteArrayInputStream(bytes));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
[quote=fernandosc]Então, eu tenho que fazer isso mais em um rich:dataTable e não estou conseguindo passar a imagem, tem ideia de como fazer isso?
Grato.[/quote]
vc quer exibir a imagem em uma celula do rich:DataTabel?
Bom nunca precisei fazer isso mas acredito que da maneira que descrevi acima seja possivel,faca um teste ai e va postando as duvidas.
pegue os bytes da imagem do banco e trasforme em um bufferedImage e depois faca como demonstrei acima usando a tag a4j:mediaOutPut