Si vous avez l'image au format Blob, il est préférable de l'utiliser pour utiliser ImageIO et lire le flux d'entrée blob directement. Cela vous donnera un objet java.awt.BufferedImage que vous pourrez ensuite rendre à n'importe quel type d'image en utilisant ImageIO.
BufferedImage image = ImageIO.read(blob.getInputStream());
// Feel free to modify the image here using image.createGraphics()
// add a water mark if you're feeling adventurous
ImageIO.write(image, "png", someOutputStream);
Je ne suis pas intimement familier avec la façon dont facebook utilise des images. Je pense que cela dépend de ce que vous faites. Pour les applications facebook, je pense que vous êtes toujours responsable de l'hébergement de l'image, mais Facebook agira comme un proxy de cache et ne demandera l'image qu'une seule fois, puis la servira à tous les clients qui ont besoin de la voir. Si c'est une image postée par un utilisateur, alors je pense que Facebook stocke complètement l'image (de toute évidence, un utilisateur qui télécharge une image ne l'a généralement pas sur un autre serveur). Si vous cherchez simplement à afficher l'image "tel quel" en réponse à une requête Web, vous pouvez diriger la sortie du Blob directement sur le client, bien que cela garde les connexions de base de données ouvertes pendant un certain temps, vous pourriez mieux vaut copier sur un cache disque que de servir au client.
Je dois avouer, je n'ai rien trouvé d'utile à propos de ce qu'est une image stirng_? Peut-être pourriez-vous préciser si cette réponse ne répond pas à vos besoins.
Merci pour Replay. Je reçois le bolb de la base de données en passant la fonction suivante puis il retourne Image en format de chaîne. Means Blob est converti en image_chaîne. public String returnBase64Code (Blob blob) { Chaîne string_image = null; try { octet [] octets = blob.getBytes ((long) 1, (int) blob.length()); octet [] bytes64 = Base64.encode (octets); string_image = new Chaîne (bytes64); Catch (Exception e) { e.printStackTrace(); } return string_image; } Au-dessus du code écrit en java – StackOverFlow
& Je souhaite générer image.png ou image.jpg depuis cette image_chaîne. Ooops, peut-être que ce code n'est pas vu correctement alors copiez-le dans n'importe quel éditeur java. Ensuite, vous avez sous-entendu ce que j'ai fait et ce que je veux faire ensuite ... Espérons que la meilleure co-opration – StackOverFlow
Comme je l'ai dit, ne pas convertir en une chaîne. C'est inutile et inutile pour votre objectif d'obtenir le fichier image. Blob a la méthode getBinaryStream() pour obtenir ses données. Si vous voulez simplement écrire l'image directement dans un fichier, il vous suffit de diriger ce flux d'entrée vers un FileOutputStream. Si vous souhaitez le redimensionner ou modifier le codage de l'image, utilisez ImageIO.read et ImageIO.write. Si vous devez vraiment partir d'un encodage Base64 de l'image, il vous faudra d'abord le faire passer par un décodeur Base64. Ensuite, vous pouvez utiliser un ByteArrayInputStream comme source pour ImageIO.read (ou pour écrire dans un fichier). – Geoff