[Gdal-dev] GDAL data writing problems (using Java SWIG bindings)
Daniele Romagnoli
dany.geotools at gmail.com
Wed Dec 27 10:22:56 EST 2006
Hi list,
I'm unsuccessfully trying to write some raster data using GDAL Java
Bindings, by mean of the writeRaster_Direct method.
This is my code:
------------------------------------------------------------
final File outFile = new File("d:\\DatiPlugin\\geotiff\\mysample22.tif");
final BufferedImage im = ImageIO.read(new
File("D:\\DatiPlugin\\bogota.tif"));
Driver gtiffDriver = gdal.GetDriverByName("GTiff");
final int width = im.getWidth();
final int height = im.getHeight ();
Dataset ds = gtiffDriver.Create(outFile.getAbsolutePath(), width,
height, 1, gdalconstConstants.GDT_Byte,null);
RenderedOp b0 = BandSelectDescriptor.create(im, new int[] { 0 }, null);
ByteBuffer bb0 = ByteBuffer.wrap(((DataBufferByte)
b0.getData().getDataBuffer()).getData(0));
ByteBuffer scanline;
byte miniBuffer[] = new byte [width];
for (int i=0; i<height;i++){
bb0.get(miniBuffer, width*i, width);
scanline = ByteBuffer.wrap(miniBuffer);
ds.GetRasterBand(1).WriteRaster_Direct(0,height*i,width,1,width,1,
gdalconstConstants.GDT_Byte,scanline);
}
ds.FlushCache();
ds.delete();
------------------------------------------------------------
This code, generates this exception:
-------------------------------------------------------
An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred
at PC=0x7C342EEE
Function=memcpy+0x33
Library=C:\WINDOWS\system32\MSVCR71.dll
Source file = F:\VS70Builds\3052\vc\crtbld\crt\src\intel\memcpy.asm : 171
Current Java thread:
at org.gdal.gdal.gdalJNI.Band_WriteRaster_Direct (Native Method)
at org.gdal.gdal.Band.WriteRaster_Direct(Band.java:127)
at javax.imageio.plugins.jp2k.TestJaiRead.testWrite(TestJaiRead.java:178)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke (Method.java:324)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected (TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run (TestSuite.java:203)
at junit.textui.TestRunner.doRun(TestRunner.java:116)
at junit.textui.TestRunner.doRun(TestRunner.java:109)
at junit.textui.TestRunner.run(TestRunner.java:72)
at junit.textui.TestRunner.run (TestRunner.java:57)
at javax.imageio.plugins.jp2k.TestJaiRead.main(TestJaiRead.java:76)
------------------------------------------
Does anybody have any clues about what I'm doing wrong?
Moreover, I have one question. Did anybody tried to write data using
the java bindings directly? I mean without using DataSet CreateCopy or the
like but feeding data directly into a RasterBand?
Best regards,
Daniele
--
Best Regards,
Daniele
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/gdal-dev/attachments/20061227/53c8d1c7/attachment.html
More information about the Gdal-dev
mailing list