Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Aiuto problema con funzione che esegue il merge di piu jpg!!!
Forum - Java - Aiuto problema con funzione che esegue il merge di piu jpg!!!

Avatar
soulbw (Normal User)
Newbie


Messaggi: 12
Iscritto: 29/04/2011

Segnala al moderatore
Postato alle 15:08
Giovedì, 05/05/2011
Ciao a tutti, sono alle prime armi ed ho provato a scrivere una funzione che fonde piu jpg in un unico jpg;

La funzione è questa:
Codice sorgente - presumibilmente Java

  1. Ciao grazie sembra perfetta ehehehe:P...solo che un piccolo problema..la mia funzione merge
  2. ridisegna solo una parte dell'immagine e non capisco perchè:P!!!!!!
  3.  
  4. Io gli passo un vettore di BufferedImage che contiene 4 elementi...ottenuti tramite la split
  5. come richiamo la merge mi ridisegna solo 1/4 (sono un po alle prime armi.....)
  6.  
  7. Cmq la merge è questa non quella che ho postato sopra:
  8. public static BufferedImage mergeImage(BufferedImage[] imgFrame, int rows, int cols)
  9. {
  10.  
  11. BufferedImage Im = new BufferedImage(imgFrame[0].getWidth() * rows, imgFrame[0].getHeight() *cols, imgFrame[0].getType()); // so che l'array è di un solo tipo
  12. int i=0; // devo operare su n elementi di BufferedImage[]..
  13. Graphics2D g = Im.createGraphics();
  14.  
  15. for( int Irows=0; Irows< rows; Irows++)
  16. {
  17. for(int Icols=0; Icols< cols; Icols++)
  18. {
  19. // chiedo a Graphics di disegnare su Im width x height
  20.  
  21. // disegno l'immaggine come un collage.....null ultimo parametro non ho bisogno di listener..
  22. g.drawImage(imgFrame[i], 0, 0, imgFrame[i].getWidth(), imgFrame[i].getHeight(), imgFrame[i].getWidth()*Irows, imgFrame[i].getHeight()*Icols, imgFrame[i].getWidth()*Irows+imgFrame[i].getWidth(), imgFrame[i].getHeight()*Icols+imgFrame[i].getHeight(), null);
  23.  
  24.  
  25. //incremento il valore ogni volta che disegno un frammento
  26. i++;
  27.  
  28. }
  29. }
  30. g.dispose();
  31.  
  32. return Im;
  33. }



Allora vi spiego...la funzione prende in ingresso un bufferedImage[]  ottenuto mediande una funzione complementare che esegue lo split dell immagine;
int rows e int cols.... rappresentano le righe e colonne in cui divido l'immagine;
Io per esempio ho diviso con la split l'immagine in 4 parti....(quindi cols = 2, rows = 2) ottenendo cosi un BufferedImage[]  e qunado lo passo alla merge per fordere il tutto e ricreare l'immagine originale ....mi crea una nuova immagine in cui solo 1/4 dell'originale è disegnato correttamente ed i restanti 3/4 sono NERii :P
Come mai dove sbaglio???

PM Quote
Avatar
soulbw (Normal User)
Newbie


Messaggi: 12
Iscritto: 29/04/2011

Segnala al moderatore
Postato alle 15:09
Giovedì, 05/05/2011
ops scusate la funzione inizia dalla riga nove :P

PM Quote
Avatar
soulbw (Normal User)
Newbie


Messaggi: 12
Iscritto: 29/04/2011

Segnala al moderatore
Postato alle 15:24
Giovedì, 05/05/2011
Risolto scusate il disturbo:asd:

PM Quote