Ciao Fred, please, read below... ------------------------------------------------------- Ing. Simone Giannecchini GeoSolutions S.A.S. Owner - Software Engineer Via Carignoni 51 55041 Camaiore (LU) Italy
phone: +39 0584983027 fax: +39 0584983027 mob: +39 333 8128928 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://simboss.blogspot.com/ http://www.linkedin.com/in/simonegiannecchini ------------------------------------------------------- On Wed, Jul 8, 2009 at 7:26 PM, fred p<[email protected]> wrote: > Hello > I get an error when reprojecting an image : the values of the pixels in the > result image are one unit lesser than the corresponding pixels in the > original image. > Have I made a mistake somewhere in the provided code ? Is it a bug due to > GeoTools or to JAI or... ? I would not use the filestore/fileload operation from JAI, I would rather use the ImageRead/ImageWrite bridge between JAI and ImageIO. However, PNM support in imageio is buggy, data are not written out correctly. I did fixe some of the problems in the past but I am not sure the fixes were applied to the source code. I might commit those fixes to imageio-ext, but unless someone steps up with funding, that is unlikely to happen anytime soon. If you feel brave, I might pass them over to you. Simone. > Below is the code I have used, you will find the image file in attachment. > Thanks for your help. > Fred > > > > > > > import java.awt.Point; > import java.awt.geom.Point2D; > import java.awt.image.RenderedImage; > import java.awt.image.renderable. > ParameterBlock; > > import javax.media.jai.Interpolation; > import javax.media.jai.JAI; > import javax.media.jai.RenderedOp; > > import org.geotools.coverage.grid.GridCoverage2D; > import org.geotools.coverage.grid.GridCoverageFactory; > import org.geotools.coverage.processing.Operations; > import org.geotools.geometry.Envelope2D; > import org.geotools.referencing.CRS; > import org.opengis.geometry.Envelope; > > > > /** > * Reprojects a PGM file. > * The values of all the result file's pixels all are one unit lesser than > the original file's corresponding pixel. > * > * Usage : java ReprojectionProblem > */ > public class ReprojectionProblem { > public static void main (String[] args) { > > try { > > // loading the input file > RenderedOp rop = JAI.create("fileload", "in.pgm"); > > // getting a gridcoverage whithin the input file > GridCoverageFactory fac = new GridCoverageFactory(); > GridCoverage2D gc = fac.create("NO > NAME",rop.getAsBufferedImage() , new > Envelope2D(CRS.decode("EPSG:4326"),-20,-20,40,40)); > > // displaying the value at coordinates point (0,0) BEFORE > reprojection > int[] array = new int[1]; > Point2D pt = new Point(0,0); > gc.evaluate(pt, array); > System.out.println("BEFORE: " + array[0]); > > // getting the target Envelope > Envelope env = new > Envelope2D(CRS.decode("EPSG:4326"),-40,-40,80,80); > > // reprojecting > GridCoverage2D gc2 = > (GridCoverage2D)Operations.DEFAULT.resample(gc,env,Interpolation.getInstance(Interpolation.INTERP_BILINEAR)); > > // displaying the value at coordinates point (0,0) AFTER > reprojection > array = new int[1]; > pt = new Point(0,0); > gc2.evaluate(pt, array); > System.out.println("AFTER: " + array[0]); > > // getting the result image > RenderedImage res = gc2.getRenderedImage(); > > // saving the result image > ParameterBlock pb = new ParameterBlock(); > pb.addSource(res); > pb.add("out.pgm"); > pb.add("pnm"); > JAI.create("filestore", pb); > > > } catch (Exception e) { > e.printStackTrace(); > } > > > > > } > } > ------------------------------------------------------------------------------ > Enter the BlackBerry Developer Challenge > This is your chance to win up to $100,000 in prizes! For a limited time, > vendors submitting new applications to BlackBerry App World(TM) will have > the opportunity to enter the BlackBerry Developer Challenge. See full prize > details at: http://p.sf.net/sfu/Challenge > _______________________________________________ > Geotools-gt2-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users > > ------------------------------------------------------------------------------ Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge _______________________________________________ Geotools-gt2-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
