java - Write GeoTIFF metadata from one file to other -


my task take 1 geotiff, make image segmentation on in, , save new geotiff(with existing coordinates). if understand correctly, coordinates preserved in geotiff metadata. grab metadata original file:

file file = new file(inputfilepath); imageinputstream iis = imageio.createimageinputstream(file); iterator<imagereader> readers = imageio.getimagereaders(iis); iiometadata metadata=null; imagereader reader=null; if (readers.hasnext()) {     // pick first available imagereader     reader = readers.next();     // attach source reader     reader.setinput(iis, true);     // read metadata of first image     metadata = reader.getimagemetadata(0);  } 

and when system.out.println("metadata: "+metadata);, see correct xml tree of metatags. i'm magic image

system.out.println("starting segmentation"); bufferedimage image = utilimageio.loadimage(inputimage); // select input image type.  algorithms behave different depending on image type imagetype<multispectral<imagefloat32>> imagetype = imagetype.ms(3, imagefloat32.class); imagesuperpixels alg = factoryimagesegmentation.fh04(new configfh04(500, 30), imagetype); // convert image boofcv format imagebase color = imagetype.createimage(image.getwidth(), image.getheight()); convertbufferedimage.convertfrom(image, color, true); // segment , display results performsegmentation(alg, color); system.out.println("segmentation finished"); 

in result obtain bufferedimage(resultbufferedimage) image segmentation. , here starts problems, i'm trying save bufferedimage old metadata:

  bufferedoutputstream out;     imagewriter writer = imageio.getimagewriter(reader);     imageoutputstream imgout = null;     fileoutputstream fos =null;     fos = new fileoutputstream(outputimage);     out = new bufferedoutputstream(fos);     imgout = imageio.createimageoutputstream(out);     writer.setoutput(imgout);     imagewriteparam param = writer.getdefaultwriteparam();     iioimage destiioimage = new iioimage(resultbufferedimage, null, metadata);     system.out.println("before write");     writer.write(null, destiioimage, null);     system.out.println("after write"); 

i printed "after write". program still running, tried wait, no results. when kill process file created successfully, geodata. how can determine finish of writing , stop program? p.s. image in default ubuntu viewer seems nice, when opened in qgis have transparent fields, , how can make gray background transparent?enter image description here

not real answer, here's 2 answers on how make tiff transparent:


Comments

Popular posts from this blog

shopping cart - Page redirect not working PHP -

php - How to modify a menu to show sub-menus -

python - Installing PyDev in eclipse is failed -