[Java lista] Kép elmentése, betöltése blob-ba

ragasits.csaba at chello.hu ragasits.csaba at chello.hu
2006. Okt. 30., H, 09:39:34 CET


Hello,

Firebird adatbázisba szeretnék képet először táblaModelbe (ds), majd ezt később az adatbázisba elmenteni:

            //JLabel - Kép
            if (fb.getFieldItem().getClass().getName().endsWith("JLabel")){
                JLabel f = (JLabel) fb.getFieldItem();
                                
                BufferedImage bi=new BufferedImage(f.getIcon().getIconWidth(),
                    f.getIcon().getIconHeight(), BufferedImage.TYPE_INT_RGB);
                ByteArrayOutputStream stream = new ByteArrayOutputStream();
                
                try {
                    ImageIO.write(bi, "jpeg", stream);
                    byte[] bin = stream.toByteArray();
                    ds.setValueAt(bin,row, fb.getColoumn());                    
                } catch (IOException ex1) { }
            } 

majd ezt betölteni:

            ////JLabel - Kép
            if (fb.getFieldItem().getClass().getName().endsWith("JLabel")){
                JLabel f = (JLabel) fb.getFieldItem();
                ImageIcon icon = new ImageIcon((byte[]) ds.getValueAt(row,fb.getColoumn()));
                f.setIcon(icon);
                f.repaint();
            } 

A fenti kódok le is futnak hiba nélkül, és az adatbázisban is látni adatokat a blobban, de mikor visszatöltöm, akkor fekete négyzetet kapok.

Van valakinek ötlete, hogy mit hagyhattam ki? 
Elmentés elött a képet látom a label-en.

thx,
Csaba






További információk a(z) Javalist levelezőlistáról