public void testWriteToStream() throws IOException { final long numerator = _TIFFRATIONAL_MAX; final long denominator = _TIFFRATIONAL_MAX - 3; final TiffRational tiffRational = new TiffRational(numerator, denominator); final MemoryCacheImageOutputStream stream = new MemoryCacheImageOutputStream(new ByteArrayOutputStream()); tiffRational.write(stream); assertEquals(8, stream.length()); stream.seek(0); assertEquals((int) numerator, stream.readInt()); assertEquals((int) denominator, stream.readInt()); }
public void testWriteToStream() throws IOException { final TiffLong tiffLong = new TiffLong(_TIFFLONG_MAX); final MemoryCacheImageOutputStream stream = new MemoryCacheImageOutputStream(new ByteArrayOutputStream()); tiffLong.write(stream); assertEquals(4, stream.length()); stream.seek(0); assertEquals(0xffffffff, stream.readInt()); }
public void testWrite_withOneProduct() throws Exception { final MemoryCacheImageOutputStream ios = new MemoryCacheImageOutputStream(new ByteArrayOutputStream()); _tiffHeader.write(ios); final long ifdSize = _tiffHeader.getIfdAt(0).getRequiredIfdSize(); final long valuesSize = _tiffHeader.getIfdAt(0).getRequiredReferencedValuesSize(); final long startIfd = TiffHeader.FIRST_IFD_OFFSET.getValue(); final long expectedStreamLength = startIfd + ifdSize + valuesSize; final long expectedNextIFDOffset = 0; assertEquals(expectedStreamLength, ios.length()); ios.seek(startIfd + ifdSize - 4); assertEquals(expectedNextIFDOffset, ios.readInt()); }
public void testWriteToStream_TwoTiffShortValue() throws IOException { final TiffShort[] values = new TiffShort[]{new TiffShort(28), new TiffShort(235)}; final TiffDirectoryEntry entry = new TiffDirectoryEntry(new TiffShort(232), values); final MemoryCacheImageOutputStream ios = new MemoryCacheImageOutputStream(new ByteArrayOutputStream()); entry.write(ios); assertEquals(12, ios.length()); ios.seek(0); assertEquals(232, ios.readShort()); assertEquals(TiffType.SHORT_TYPE, ios.readShort()); assertEquals(values.length, ios.readInt()); for (int i = 0; i < values.length; i++) { assertEquals("at index [" + i + "] ", values[i].getValue(), ios.readShort()); } }
public void testWriteToStream_OneTiffShortValue() throws IOException { final TiffDirectoryEntry entry = new TiffDirectoryEntry(new TiffShort(232), new TiffShort(28)); final MemoryCacheImageOutputStream ios = new MemoryCacheImageOutputStream(new ByteArrayOutputStream()); entry.write(ios); assertEquals(12, ios.length()); ios.seek(0); assertEquals(232, ios.readShort()); assertEquals(TiffType.SHORT_TYPE, ios.readShort()); assertEquals(1, ios.readInt()); assertEquals(28, ios.readShort()); assertEquals(0, ios.readShort()); }
_ios.seek(offsets[0].getValue()); for (int j = 0; j < _WIDTH * _HEIGHT; j++) { assertEquals("index at [" + j + "]", startValue + j, _ios.readInt());
public void testWriteBandRasterData_WithINT32() throws IOException { _product.addBand("b1", ProductData.TYPE_INT32); final int startValue = 1; final ProductData data = createProductDataForBand(_product.getBand("b1"), startValue); final TiffHeader tiffHeader = new TiffHeader(new Product[]{_product}); final GeoTiffBandWriter bandWriter = new GeoTiffBandWriter(tiffHeader.getIfdAt(0), _ios, _product); tiffHeader.write(_ios); bandWriter.writeBandRasterData(_product.getBand("b1"), 0, 0, _WIDTH, _HEIGHT, data, ProgressMonitor.NULL); final TiffIFD ifd = tiffHeader.getIfdAt(0); final int firstIFDOffset = 10; final long expSize = ifd.getRequiredEntireSize() + firstIFDOffset; final TiffIFD tiffIFD = tiffHeader.getIfdAt(0); final TiffDirectoryEntry entry = tiffIFD.getEntry(TiffTag.STRIP_OFFSETS); final TiffLong[] offsets = (TiffLong[]) entry.getValues(); assertEquals(expSize, _ios.length()); _ios.seek(offsets[0].getValue()); for (int j = 0; j < _WIDTH * _HEIGHT; j++) { final int expValue = startValue + j; assertEquals("index at [" + j + "]", expValue, _ios.readInt()); } }