Bonjour,


J'ai un problème avec ma classe pour fusionner des "fragements colonnes" d'une image,en fait j'ai une application distribuée qui recoit des colonnes de l'images dont elle connait les start colonm,end colon,start row et end row

J'aimerais fusionner tout cela dans une seule image mais ca ne semble pas bien fonctionner


Si vous pouviez m'éclairer ce serait sympa

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 
import javax.imageio.ImageIO;
 
//import applicationDispatcher.bin.Application;
 
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.Raster;
import java.io.File;
import java.io.IOException;
 
 
public class Merger2 {
 
    BufferedImage completeImg;
 
    public Merger2(int width, int height){
        completeImg = new BufferedImage(width,height,5);
    }
 
    public synchronized void addFragment(File f, int sc, int sr, int ec, int er){
        BufferedImage fragment = null;
 
       // if (Application._devDbg) System.out.println("** ImageMerger : fragment recu ("+sc+","+sr+","+ec+","+er+") : "+f);
        try {
        	System.out.println(f.toString());
        fragment = ImageIO.read(f);
        } catch (IOException e) {
            e.printStackTrace();
        }
 
        Raster raster = fragment.getData(new Rectangle(sc,0,ec-sc,er-sr));
        if(sr>0){
        	raster = raster.createTranslatedChild(sc,sr);
        }
        completeImg.setData(raster);        
    }
 
    public synchronized void finish(File f){
        try {
            ImageIO.write(completeImg,"bmp",f);
        } catch (IOException e) {
            e.printStackTrace();
        }
 
       // if (Application._devDbg) System.out.println("** ImageMerger : tous les fragments recus, ecriture du fichier final");
    }
 
public static void main(String[] args){
	Merger2 m = new Merger2(800,600);
	m.addFragment(new File("C:\\TEMP\\CLI_BMP_INCOMMING\\1.bmp"),0, 0, 600,400);
	m.addFragment(new File("C:\\TEMP\\CLI_BMP_INCOMMING\\2.bmp"),0, 401, 600,800);
	m.finish(new File("C:/lol.jpg"));
}
 
 
}