Comment convertir BufferedInputStream en une image ?
Question originale :
J'ai des difficultés à convertir un blob en une image tamponnée. Je récupère une image JPG sous forme de blob de ma base de données, mais la conversion en image à l'aide de BufferedImage renvoie null. Comment puis-je résoudre ce problème ?
Solution :
- Vérifiez que le flux InputStream téléchargé contient une image valide en l'écrivant à l'aide de ImageIO.write.
- Assurez-vous que Blob#length renvoie une valeur compatible avec Blob#getBytes. Dans ce cas, Blob#length renvoie un long, tandis que Blob#getBytes attend un int, ce qui pourrait conduire à une troncature.
- Envisagez d'utiliser getBinaryStream au lieu de getBytes pour récupérer le contenu du blob, car getBinaryStream est plus adapté aux blobs. qui ne sont pas stockés en mémoire.
Considérations supplémentaires :
- Le code fourni ne gère pas l'exception potentielle levée par ImageIO.read. Assurez-vous que l'exception est gérée correctement ou propagée à l'appelant.
- Pour un débogage plus approfondi, fournissez plus d'informations sur les données d'entrée, telles que leur taille et leur format.
- Reportez-vous à la documentation du bibliothèque de base de données que vous utilisez pour récupérer et gérer correctement les blobs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!