optimisation de la recuperationd'image Rgb par socket

optimisation de la recuperationd'image Rgb par socket - Java - Programmation

Marsh Posté le 26-01-2005 à 09:27:59    

Je sais la programmation java est considérée comme lentes,  
je pense que mon code peut etre optimisé...
 
Voila le problème:
j'utilise une connexion socket udp pour recevoir une image:
 
byte[] buffer = new byte[taille_buffer];
DatagramPacket p1 = new DatagramPacket(buffer, taille_buffer);
DatagramSocket s1 = new DatagramSocket(1234, address);
byte[] stockage = new byte[w * h * 3];    
// w largueur de l'image
// h hauteur
// multiplie par 3, car l'image est codé par 3 byte bleu, rouge, vert et pas de alpha.  
 
while ((k+1) * taille_buffer < w * h * 3) {
        envoyer("Get_image" );//envoi une commande au serveur  
 
        s1.receive(p1);//recoit des données
 
        for (int i = 0; i < buffer.length; i++) {  
             stockage[i + taille_buffer * k] = buffer[i];
              //je stocke le Byte
             }
        k++;
        }
//à la fin du while, j'ai un tableau de byte de taille w*h*3
 
BufferedImage bufferedImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
 
int[] rgbs = new int[w * h];//maintenant je crée un bufferedimage et un tableau de byte stockant les pixels sous format int pour charger le bufferimage
 
for (int i = 0; i < w * h; i++) {
    rgbs[i] = ((((stockage[3 * i] & 0xFF) << 8) |                     stockage[3 * i + 1] & 0xFF) << 8) |                                    stockage[3 * i + 2] & 0xFF;
                        }
 
bufferedImage.setRGB(0, 0, w, h, rgbs, 0, w);// je charge le tableau de int
 
jLabel6.setIcon(new ImageIcon(bufferedImage));puis à la fin je l'affiche
 
 
 
J'ai besoin d'aide:
Y a t il une fonction de jLabel qui peut charger "stockage" directement, un tableau de pixel avec des byte bleu rouge vert sans alpha
 
es ce que je dois utiliser ma convertion en int pour le tableau rgb[] directement sans utiliser byte stockage[]...(vérifiant que buffer.length est bien multiple de 3)
 

Reply

Marsh Posté le 26-01-2005 à 09:27:59   

Reply

Marsh Posté le 26-01-2005 à 09:40:16    

mysticpower a écrit :

Je sais la programmation java est considérée comme lentes,


Tu commences mal la journée.  :sol:  

mysticpower a écrit :

je pense que mon code peut etre optimisé...


C'est plutôt ça en fait  :D  


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 27-01-2005 à 13:57:20    

en modifiant mon code  
 
je replace le bufferImage par
 
BufferedImage bufferedImage = new BufferedImage(w, h, BufferedImage.TYPE_3BYTE_BGR);
 
je cherche une fonction qui pourrait faire ici
bufferedImage.setRGB(0, 0, w, h, stockage, 0, w);
avec stockage une tableau de byte

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed