Oppure

Loading
05/05/11 13:08
soulbw
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:

Ciao grazie sembra perfetta ehehehe:P...solo che un piccolo problema..la mia funzione merge
ridisegna solo una parte dell'immagine e non capisco perchè:P!!!!!!

Io gli passo un vettore di BufferedImage che contiene 4 elementi...ottenuti tramite la split
come richiamo la merge mi ridisegna solo 1/4 (sono un po alle prime armi.....)

Cmq la merge è questa non quella che ho postato sopra:
public static BufferedImage mergeImage(BufferedImage[] imgFrame, int rows, int cols)
{

BufferedImage Im = new BufferedImage(imgFrame[0].getWidth() * rows, imgFrame[0].getHeight() *cols, imgFrame[0].getType()); // so che l'array è di un solo tipo
int i=0; // devo operare su n elementi di BufferedImage[]..
Graphics2D g = Im.createGraphics();

for( int Irows=0; Irows< rows; Irows++)
{
for(int Icols=0; Icols< cols; Icols++)
{
// chiedo a Graphics di disegnare su Im width x height

// disegno l'immaggine come un collage.....null ultimo parametro non ho bisogno di listener..
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);


//incremento il valore ogni volta che disegno un frammento
i++;

}
}
g.dispose();

return Im;
}



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???
aaa
05/05/11 13:09
soulbw
ops scusate la funzione inizia dalla riga nove :P
aaa
05/05/11 13:24
soulbw
Risolto scusate il disturbo:asd:
aaa