我在內存中有一個Image(類型:java.awt.Image),我想使用jdk 1.7將它轉換爲Blob(類型:java.sql.Blob)。將內存中的圖像轉換爲Blob
我一直在這個問題上找到的所有東西都使用流和文件。當然,我不需要將這個圖像保存到文件,然後才能轉換它?
這裏不多顯示,但一個例子如下:
進口的java.sql.Blob; import java.awt.Image;
public GenericResponseType savePhoto(Image image)
{
Connection conn = ds.getConnection();
<< some DB code and assembly of PreparedStatement >>
Blob blob = conn.createBlob();
<< here's where the magic needs to happen I need to get the image parameter to blob >>
// I've tried the following but doesn't quite work as it wants a RenderedImage
// OutputStream os = blob.setBinaryStream(1);
// ImageIO.write(parameters.getPhoto().getImage(), "jpg", os);
pstmt.setBlob(4, blob);
}
一些更詳細的(雖然我懷疑它的問題了)就是上面生成使用Web服務/ JAX-WS從WSDL與操作使用MTOM聲明。因此它會生成一個帶有作爲變量傳遞的圖像的簽名。
不,但您需要首先將其放入BufferedImage – MadProgrammer