Comment puis-je convertir un objet BufferedImage en un InputStream ou un BLOB?

Je suis en train de stocker une image téléchargée par l'utilisateur dans la base de données avec un LONGBLOB attribut... j'ai rencontré un problème avec un PreparedStatement qui a deux méthodes pour définir un blob qui sont:

public void setBinaryStream(int parameterIndex, InputStream x)

public void setBlob(int parameterIndex, Blob x)

public void setBlob(int parameterIndex, InputStream inputStream)

Maintenant, le problème est que j'ai un BufferedImage objet qui doit être converti en Blob ou InputStream à télécharger...

Comment puis-je le faire sans perte de l'original format de l'image ou de la qualité?

source d'informationauteur Asif