Salut,
Je cherche a récuperer les bytes d'une image mais je ne trouve pas de méthode adéquat ni dans la classe image, ni dans la classe BufferedImage...
Quelqu'un aurait-il une idée?
Merci
Salut,
Je cherche a récuperer les bytes d'une image mais je ne trouve pas de méthode adéquat ni dans la classe image, ni dans la classe BufferedImage...
Quelqu'un aurait-il une idée?
Merci
salut,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 //1- Cree un objet file pointant sur ton image File imageFile(tonImage); //2- Cree un stream afin de pouvoir lire dans les donnees binaires FileInputStream imageFileStr(imageFile); //3- Recupere la taille du buffer int longueurDuFichier = imageFileStr.Available(); //4- Recupere le bytes[] complet byte [] buffer = new byte[longueurDuFichier]; imageFileStr.read(buffer); //Et voila.....
PHP / J2EE
En fait le but de la manoeuvre est la suivant :
- Charger l'image depuis le filesystem (ok)
- Reduire la taille de l'image (ok)
- Convertir l'image en byte[] pour l'inserer dans une base de données (non ok)
Voila je bloque donc sur cette derniere étape...
Merci pour vos suggestions
heuuuuuu......je viens de te répondre 1 post plus haut ?
Tu as essayé ?
PHP / J2EE
quand tu crees un File tu lui passes un chemin, lui il cherche à récuperer les byte d'une image de type java.awt.Image ....
Oui en fait je cherche a avoir les bytes de la nouvelle image (celle dont la taille a été réduite)
Donc je ne peux pas repasser par le File vu que j'ai seulement un object Image sous la main.
La methode qui compresse le mieux est probablement de re-sauvegarder l'image au format JPEG (destructif) ou PNG (non-destructif) via ImageIO. Par contre au lieu de la sauvegarder dans un fichier, tu peux la sauvegarder dans un ByteArrayOutputStream (ImageIO marche sur n'importe quel flux sans distinction). Une fois la sauvegarde effectuee, utiliser la methode toByteArray() pour recuperer un byte[] (ce tableau contient l'image encodee au format utilise, pas les pixels directs).
Utiliser la methode inverse et la classe ByteArrayInputStream pour re-recuperer l'image ; toujours grace a ImageIO.
De meme si ton image est suffisement compressee sur le disque dur, ca ne sert a rien de creer une image Java, etc... pour la mettre dans la BD ; autant directement utiliser les octets lus dans le fichier du disque via un FileInputStream de base.
Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager