public void writeIFD(IFD ifd, long nextOffset) throws FormatException, IOException { TreeSet<Integer> keys = new TreeSet<Integer>(ifd.keySet()); int keyCount = keys.size(); if (ifd.containsKey(new Integer(IFD.LITTLE_ENDIAN))) keyCount--; if (ifd.containsKey(new Integer(IFD.BIG_TIFF))) keyCount--; if (ifd.containsKey(new Integer(IFD.REUSE))) keyCount--; long fp = out.getFilePointer(); int bytesPerEntry = bigTiff ? TiffConstants.BIG_TIFF_BYTES_PER_ENTRY : TiffConstants.BYTES_PER_ENTRY; int ifdBytes = (bigTiff ? 16 : 6) + bytesPerEntry * keyCount; if (bigTiff) out.writeLong(keyCount); else out.writeShort(keyCount); ByteArrayHandle extra = new ByteArrayHandle(); RandomAccessOutputStream extraStream = new RandomAccessOutputStream(extra); for (Integer key : keys) { if (key.equals(IFD.LITTLE_ENDIAN) || key.equals(IFD.BIG_TIFF) || key.equals(IFD.REUSE)) continue; Object value = ifd.get(key); writeIFDValue(extraStream, ifdBytes + fp, key.intValue(), value); } if (bigTiff) out.seek(out.getFilePointer()); writeIntValue(out, nextOffset); out.write(extra.getBytes(), 0, (int) extra.length()); extraStream.close(); }
out.writeBytes(sizes[i] + "\t"); while ((out.getFilePointer() - dimensionOffset) < dimensionLength - 1) { out.writeBytes(" ");
public void writeIFD(IFD ifd, long nextOffset) throws FormatException, IOException { TreeSet<Integer> keys = new TreeSet<Integer>(ifd.keySet()); int keyCount = keys.size(); if (ifd.containsKey(new Integer(IFD.LITTLE_ENDIAN))) keyCount--; if (ifd.containsKey(new Integer(IFD.BIG_TIFF))) keyCount--; if (ifd.containsKey(new Integer(IFD.REUSE))) keyCount--; long fp = out.getFilePointer(); int bytesPerEntry = bigTiff ? TiffConstants.BIG_TIFF_BYTES_PER_ENTRY : TiffConstants.BYTES_PER_ENTRY; int ifdBytes = (bigTiff ? 16 : 6) + bytesPerEntry * keyCount; if (bigTiff) out.writeLong(keyCount); else out.writeShort(keyCount); ByteArrayHandle extra = new ByteArrayHandle(); RandomAccessOutputStream extraStream = new RandomAccessOutputStream(extra); for (Integer key : keys) { if (key.equals(IFD.LITTLE_ENDIAN) || key.equals(IFD.BIG_TIFF) || key.equals(IFD.REUSE)) continue; Object value = ifd.get(key); writeIFDValue(extraStream, ifdBytes + fp, key.intValue(), value); } if (bigTiff) out.seek(out.getFilePointer()); writeIntValue(out, nextOffset); out.write(extra.getBytes(), 0, (int) extra.length()); extraStream.close(); }
out.writeBytes(sizes[i] + "\t"); while ((out.getFilePointer() - dimensionOffset) < dimensionLength - 1) { out.writeBytes(" ");
long fp = out.getFilePointer(); if (isTiled && tileOrStripOffsetX == 0 && tileOrStripOffsetY == 0) { sequentialTileFilePointer = fp; fp = sequentialTileFilePointer; if (fp == out.getFilePointer()) { // Create IFD only if at the end of file writeIFD(ifd, 0); int c = interleaved ? 0 : i % nChannels; int thisOffset = firstOffset + index + (c * tileCount); offsets.set(thisOffset, out.getFilePointer()); byteCounts.set(thisOffset, new Long(strips[i].length)); if (LOGGER.isDebugEnabled()) { ifd.putIFDValue(IFD.STRIP_OFFSETS, toPrimitiveArray(offsets)); long endFP = out.getFilePointer(); if (LOGGER.isDebugEnabled()) { LOGGER.debug("Offset before IFD write: {} Seeking to: {}", out.getFilePointer(), fp); LOGGER.debug("Offset after IFD write: {}", out.getFilePointer());
long fp = out.getFilePointer(); if (isTiled && tileOrStripOffsetX == 0 && tileOrStripOffsetY == 0) { sequentialTileFilePointer = fp; fp = sequentialTileFilePointer; if (fp == out.getFilePointer()) { // Create IFD only if at the end of file writeIFD(ifd, 0); int c = interleaved ? 0 : i % nChannels; int thisOffset = firstOffset + index + (c * tileCount); offsets.set(thisOffset, out.getFilePointer()); byteCounts.set(thisOffset, new Long(strips[i].length)); if (LOGGER.isDebugEnabled()) { ifd.putIFDValue(IFD.STRIP_OFFSETS, toPrimitiveArray(offsets)); long endFP = out.getFilePointer(); if (LOGGER.isDebugEnabled()) { LOGGER.debug("Offset before IFD write: {} Seeking to: {}", out.getFilePointer(), fp); LOGGER.debug("Offset after IFD write: {}", out.getFilePointer());
private void writeFooter() throws IOException { footerPointer = out.getFilePointer(); // write IEND chunk out.writeInt(0); out.writeBytes("IEND"); out.writeInt(crc("IEND".getBytes(Constants.ENCODING))); // update frame count out.seek(numFramesPointer); out.writeInt(numFrames); out.skipBytes(4); byte[] b = new byte[12]; b[0] = 'a'; b[1] = 'c'; b[2] = 'T'; b[3] = 'L'; DataTools.unpackBytes(numFrames, b, 4, 4, false); DataTools.unpackBytes(0, b, 8, 4, false); out.writeInt(crc(b)); }
private void writeFooter() throws IOException { footerPointer = out.getFilePointer(); // write IEND chunk out.writeInt(0); out.writeBytes("IEND"); out.writeInt(crc("IEND".getBytes(Constants.ENCODING))); // update frame count out.seek(numFramesPointer); out.writeInt(numFrames); out.skipBytes(4); byte[] b = new byte[12]; b[0] = 'a'; b[1] = 'c'; b[2] = 'T'; b[3] = 'L'; DataTools.unpackBytes(numFrames, b, 4, 4, false); DataTools.unpackBytes(0, b, 8, 4, false); out.writeInt(crc(b)); }
savedbLength.add(new Long(out.getFilePointer())); idx1Pos = out.getFilePointer(); out.seek(SAVE_LIST2_SIZE); out.writeInt((int) (idx1Pos - (SAVE_LIST2_SIZE + 4))); out.writeBytes("idx1"); saveidx1Length = out.getFilePointer(); endPos = out.getFilePointer(); out.seek(SAVE_FILE_SIZE); out.writeInt((int) (endPos - (SAVE_FILE_SIZE + 4)));
savedbLength.add(new Long(out.getFilePointer())); idx1Pos = out.getFilePointer(); out.seek(SAVE_LIST2_SIZE); out.writeInt((int) (idx1Pos - (SAVE_LIST2_SIZE + 4))); out.writeBytes("idx1"); saveidx1Length = out.getFilePointer(); endPos = out.getFilePointer(); out.seek(SAVE_FILE_SIZE); out.writeInt((int) (endPos - (SAVE_FILE_SIZE + 4)));
FormatTools.pixelTypeFromString(meta.getPixelsType(series).toString()); dimensionOffset = out.getFilePointer(); int[] sizes = overwriteDimensions(meta); dimensionLength = (int) (out.getFilePointer() - dimensionOffset); pixelOffset = out.getFilePointer();
FormatTools.pixelTypeFromString(meta.getPixelsType(series).toString()); dimensionOffset = out.getFilePointer(); int[] sizes = overwriteDimensions(meta); dimensionLength = (int) (out.getFilePointer() - dimensionOffset); pixelOffset = out.getFilePointer();
private void writeHeader() throws IOException { MetadataRetrieve r = getMetadataRetrieve(); int width = r.getPixelsSizeX(series).getValue().intValue(); int height = r.getPixelsSizeY(series).getValue().intValue(); int nChannels = getSamplesPerPixel(); out.writeBytes("%!PS-Adobe-2.0 EPSF-1.2\n"); out.writeBytes("%%Title: " + currentId + "\n"); out.writeBytes("%%Creator: " + FormatTools.CREATOR + "\n"); out.writeBytes("%%Pages: 1\n"); out.writeBytes("%%BoundingBox: 0 0 " + width + " " + height + "\n"); out.writeBytes("%%EndComments\n\n"); out.writeBytes("/ld {load def} bind def\n"); out.writeBytes("/s /stroke ld /f /fill ld /m /moveto ld /l " + "/lineto ld /c /curveto ld /rgb {255 div 3 1 roll 255 div 3 1 " + "roll 255 div 3 1 roll setrgbcolor} def\n"); out.writeBytes("0 0 translate\n"); out.writeBytes(((float) width) + " " + ((float) height) + " scale\n"); out.writeBytes("/picstr 40 string def\n"); out.writeBytes(width + " " + height + " 8 [" + width + " 0 0 " + (-1 * height) + " 0 " + height + "] {currentfile picstr readhexstring pop} "); if (nChannels == 1) { out.writeBytes("image\n"); } else { out.writeBytes("false 3 colorimage\n"); } planeOffset = out.getFilePointer(); }
private void writeHeader() throws IOException { MetadataRetrieve r = getMetadataRetrieve(); int width = r.getPixelsSizeX(series).getValue().intValue(); int height = r.getPixelsSizeY(series).getValue().intValue(); int nChannels = getSamplesPerPixel(); out.writeBytes("%!PS-Adobe-2.0 EPSF-1.2\n"); out.writeBytes("%%Title: " + currentId + "\n"); out.writeBytes("%%Creator: " + FormatTools.CREATOR + "\n"); out.writeBytes("%%Pages: 1\n"); out.writeBytes("%%BoundingBox: 0 0 " + width + " " + height + "\n"); out.writeBytes("%%EndComments\n\n"); out.writeBytes("/ld {load def} bind def\n"); out.writeBytes("/s /stroke ld /f /fill ld /m /moveto ld /l " + "/lineto ld /c /curveto ld /rgb {255 div 3 1 roll 255 div 3 1 " + "roll 255 div 3 1 roll setrgbcolor} def\n"); out.writeBytes("0 0 translate\n"); out.writeBytes(((float) width) + " " + ((float) height) + " scale\n"); out.writeBytes("/picstr 40 string def\n"); out.writeBytes(width + " " + height + " 8 [" + width + " 0 0 " + (-1 * height) + " 0 " + height + "] {currentfile picstr readhexstring pop} "); if (nChannels == 1) { out.writeBytes("image\n"); } else { out.writeBytes("false 3 colorimage\n"); } planeOffset = out.getFilePointer(); }
numFramesPointer = out.getFilePointer(); out.writeInt(0); out.writeInt(0); out.writeInt(0); // save a place for the CRC footerPointer = out.getFilePointer();
numFramesPointer = out.getFilePointer(); out.writeInt(0); out.writeInt(0); out.writeInt(0); // save a place for the CRC footerPointer = out.getFilePointer();
idx1Pos = out.getFilePointer();
idx1Pos = out.getFilePointer();