私は3つのblob(画像)をderby blob列に挿入しました...最初に1つのblobを挿入し、次に2つのblobを挿入しました。すべてのBlob画像がjpanelで表示されない
blob.getLength()は、3つのブロブ(画像)を結合した正確なバイトサイズを返します。これは、3つのブロブがDBに保存されていることを示唆しています。
は、それから私は取得してみてください:
byteArray = blob.getBytes(0,blob.length());
imageIcon=new ImageIcon(byteArray);
それとも私が使用してどの
inputStream =blob.getBinaryStream();
BufferedImage image=ImageIO.read(inputStream);
imageIcon= new ImageIcon(image);
が、私は最初のブロブ(画像)を取得JPanelの... に表示するものであることから、ブロックの他のブロブを読んで見せて?
private JTextPane createMediaArea() {
String getMediaEditorData = "select mediaEditor from settingsTable where id=6";
Statement stmtBlob;
try {
stmtBlob = settingsConn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
try (ResultSet rsMediaEditor = stmtBlob.executeQuery(getMediaEditorData)) {
System.out.println("rsMediaEditor is created ");
while (rsMediaEditor.next()) {
mediaEditorBlob = rsMediaEditor.getBlob("mediaEditor");
if (mediaEditorBlob == null) {
chosenImageIcon = new ImageIcon("./resources.jpg");
scaledChosenImage = chosenImageIcon.getImage().getScaledInstance(100, 100, Image.SCALE_FAST);
scaledImageIcon = new ImageIcon(scaledChosenImage);
mediaArea.insertIcon(scaledImageIcon);
} else {
mediaEditorBlobLength = mediaEditorBlob.length();
System.out.println("mediaEditorBlobLength is : " + mediaEditorBlobLength);
/*1st way is to get the blob array .*/
/*
byte[] mediaEditorByteArray = mediaEditorBlob.getBytes(1L, (int) mediaEditorBlobLength);
int mediaEditorByteArrayLength = mediaEditorByteArray.length;
System.out.println("mediaEditorByteArrayLength is :" + mediaEditorByteArrayLength);
*/
/*2nd way ..use ImageIO*/
InputStream binaryStream = mediaEditorBlob.getBinaryStream();
BufferedImage read = ImageIO.read(binaryStream);
chosenImageIcon= new ImageIcon(read);
scaledChosenImage = chosenImageIcon.getImage().getScaledInstance(100, 100, Image.SCALE_FAST);
scaledImageIcon = new ImageIcon(scaledChosenImage);
mediaArea.insertIcon(scaledImageIcon);
}
}
} catch (IOException ex) {
Logger.getLogger(FrontFace.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("rsMediaEditor closed !");
stmtBlob.close();
System.out.println("stmtBlob closed !");
} catch (SQLException ex) {
Logger.getLogger(FrontFace.class.getName()).log(Level.SEVERE, null, ex);
}
return mediaArea;
}
ImageIconを1つ作成した場合、どのように3つのアイコンを描くことができますか。実行可能なショートコードを投稿できますか? –
@Jay Smith ....すべての3つのBLOBが列の1つの行に挿入され、常駐します.... inputStreamまたはbyteArrayは、行の...または一部で使用可能なすべてのバイトを収集しますか? – Mohd
ロケーションカラム*行に1つのイメージを保存します。 1 * 1には1つの画像がありますが、1 * 2には別の画像があります。同じ列だが異なる行 –