Bilder laden von Stream

amin

Grünschnabel
hallo, ich habe Problem mit dem Bildladen.
Hier ist mein Code.

BufferedInputStream is = new BufferedInputStream(cisDB.getBlobProperty(session, null, "headPict"));
BufferedImage image = ImageIO.read(is);

Ich möchte von DB "headPict"(jpg) holen, lesen dann in Velocity speichern.
"is" ist not null aber "image" ist null. Kann ich überhaupt jpeg Datei mit ImageIO lesen und weiter geben?
 
Ja kann man.
Warum image null ist kann ich dir nicht sagen. Ich müsste dazu auch mal wissen was cisDB ist.
MFG

Sascha
 
Danke für deine Antwort.
cisDB ist ein Datenbankinstance. Hier gibt es datensatz mit key "haadPict" und value "com.lbm.db2.jcc.b.bl@37165f". Keyname ist Bildname "headPict". Wenn ich als Image lesen will mit ImageIO.read(is) soll an Keyname eine Formatendung anhängen und als BuferredImage speichern?
Danke im voraus.

MFG
 
Zuletzt bearbeitet:
Ein Bild asd.jpg kannst du auch nur laden, wenn es in deinem Programmordner ist. Eventuell musst du auch nur den ganzen Pfad angeben.

Mach doch mal ein Testprojekt in dem du auf diese Methode ein Bild anzeigen lässt, dann weißt du ja ob es geht ;)
 
Ich möchte das Bild nicht von Ordner holen sondern von DB als Stream.

cisDB ist ein Datenbankinstance von cisDataBase.java und ich hole Bilddatei als Blob Stream von DB durch getBlobProperty(). Datei getBlobProperty() ist folgendes.

public InputStream getBlobPropery(final Session session, final Integer new ProilId, fina String key)
{
final String logString = "getBlobProperty:key="+key;

CisConnection con = new CisConnection(this);
InputStream in = null;
try {
CisStatement stmt = con.prepareStatement(SELECT_CIS_PROPERTY_KEY);
CisResultSet res = stmt.executeQuery(logString, session);
if (res.next()) {
final Blob b = res.getBlob(8);
if (!res.wasNull()) {in = b.getBinaryStream();}
}
} finally {con.close();}
return in;
}


MFG
 
Zurück