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"));
}
} |
Partager