Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void merge() throws IOException, Exception
- {
- List<String> tifs = new ArrayList<>(fileList.keySet());
- Collections.sort(tifs);
- for (String key : tifs)
- {
- List<File> files = fileList.get(key);
- // Sorter når der et behov for at listen er sorteret, ikke mens der hentes ud
- Collections.sort(files);
- int numTifs = files.size();
- BufferedImage image[] = new BufferedImage[numTifs];
- for (File page : files)
- {
- SeekableStream ss = new FileSeekableStream(page);
- ImageDecoder decoder = ImageCodec.createImageDecoder("tiff", ss, null);
- PlanarImage pi = new NullOpImage(decoder.decodeAsRenderedImage(0), null, null, OpImage.OP_IO_BOUND);
- image[files.indexOf(page)] = pi.getAsBufferedImage();
- ss.close();
- }
- TIFFImageReaderSpi tiffReader = new TIFFImageReaderSpi();
- ImageReader reader = tiffReader.createReaderInstance();
- reader.setInput(pageNumbers);
- TIFFImageWriterSpi tiffWriter = new TIFFImageWriterSpi();
- ImageWriter writer = tiffWriter.createWriterInstance();
- FileImageOutputStream fileImageOutputStream = new FileImageOutputStream(new File(too.getPath() + "\\" + key + ".tif"));
- writer.setOutput(fileImageOutputStream);
- List<BufferedImage> list = new ArrayList<BufferedImage>(image.length);
- for (int i = 1; i < image.length; i++)
- {
- list.add(image[i]);
- }
- // params.setExtraImages(list.iterator());
- // encoder.encode(image[0]);
- // out.close();
- int targetIndex = 0;
- boolean firstPage = true;
- for(int sourceNumber : pageNumbers)
- {
- IIOMetadata metadata = reader.getImageMetadata(sourceNumber - 1);
- if (firstPage)
- {
- writer.write(null, new IIOImage(reader.readAsRenderedImage(1, null), null, metadata), null);
- }
- else
- {
- writer.writeInsert(targetIndex++, new IIOImage(reader.readAsRenderedImage(0 , null), null, metadata), null);
- }
- reader.dispose();
- writer.dispose();
- // return this;
- }
- // TIFFEncodeParam params = new TIFFEncodeParam();
- // params.setCompression(TIFFEncodeParam.COMPRESSION_DEFLATE);
- //
- // OutputStream out = new FileOutputStream(too.getPath() + "\\" + key + ".tif");
- // ImageEncoder encoder = ImageCodec.createImageEncoder("tiff", out, params);
- // List<BufferedImage> list = new ArrayList<BufferedImage>(image.length);
- // for (int i = 1; i < image.length; i++)
- // {
- // list.add(image[i]);
- // }
- // params.setExtraImages(list.iterator());
- // encoder.encode(image[0]);
- // out.close();
- }
- JOptionPane.showMessageDialog(rootPane, "Done!");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement