public BufferedImage getTiffImage() throws ImageReadException, IOException { Map params = null; return getTiffImage(params); }
public String description() { return TiffDirectory.description(type); }
public boolean hasJpegImageData() throws ImageReadException { if (null != findField(TIFF_TAG_JPEG_INTERCHANGE_FORMAT)) return true; return false; }
public ArrayList getTiffRawImageDataElements() throws ImageReadException { TiffField tileOffsets = findField(TIFF_TAG_TILE_OFFSETS); TiffField tileByteCounts = findField(TIFF_TAG_TILE_BYTE_COUNTS); TiffField stripOffsets = findField(TIFF_TAG_STRIP_OFFSETS); TiffField stripByteCounts = findField(TIFF_TAG_STRIP_BYTE_COUNTS); if ((tileOffsets != null) && (tileByteCounts != null)) { return getRawImageDataElements(tileOffsets, tileByteCounts); } else if ((stripOffsets != null) && (stripByteCounts != null)) { return getRawImageDataElements(stripOffsets, stripByteCounts); } else throw new ImageReadException("Couldn't find image data."); }
TiffDirectory directory = new TiffDirectory(dirType, fields, offset, nextDirectoryOffset); if (directory.hasTiffImageData()) directory.setTiffImageData(rawImageData); if (directory.hasJpegImageData()) directory.setJpegImageData(rawJpegImageData);
public ArrayList getElements() throws ImageReadException { ArrayList result = new ArrayList(); result.add(header); for (int i = 0; i < directories.size(); i++) { TiffDirectory directory = (TiffDirectory) directories.get(i); result.add(directory); ArrayList fields = directory.entries; for (int j = 0; j < fields.size(); j++) { TiffField field = (TiffField) fields.get(j); TiffElement oversizeValue = field.getOversizeValueElement(); if (null != oversizeValue) result.add(oversizeValue); } if (directory.hasTiffImageData()) result.addAll(directory.getTiffRawImageDataElements()); if (directory.hasJpegImageData()) result.add(directory.getJpegRawImageDataElement()); } return result; }
ArrayList elements = directory.getTiffRawImageDataElements(); TiffImageData.Data data[] = new TiffImageData.Data[elements.size()]; for (int i = 0; i < elements.size(); i++) if (directory.imageDataInStrips()) .findField(TIFF_TAG_ROWS_PER_STRIP); if (null == rowsPerStripField) throw new ImageReadException("Can't find rows per strip field."); } else TiffField tileWidthField = directory.findField(TIFF_TAG_TILE_WIDTH); if (null == tileWidthField) throw new ImageReadException("Can't find tile width field."); .findField(TIFF_TAG_TILE_LENGTH); if (null == tileLengthField) throw new ImageReadException("Can't find tile length field.");
elements.add(directory); List fields = directory.getDirectoryEntrys(); for (int f = 0; f < fields.size(); f++) JpegImageData jpegImageData = directory.getJpegImageData(); if (jpegImageData != null) elements.add(jpegImageData); TiffImageData tiffImageData = directory.getTiffImageData(); if (tiffImageData != null)
throw new ImageReadException("TIFF missing entries"); int photometricInterpretation = directory.findField( TIFF_TAG_PHOTOMETRIC_INTERPRETATION, true).getIntValue(); int compression = directory.findField(TIFF_TAG_COMPRESSION, true) .getIntValue(); int width = directory.findField(TIFF_TAG_IMAGE_WIDTH, true) .getIntValue(); int height = directory.findField(TIFF_TAG_IMAGE_LENGTH, true) .getIntValue(); int samplesPerPixel = directory.findField(TIFF_TAG_SAMPLES_PER_PIXEL, true).getIntValue(); int bitsPerSample[] = directory.findField(TIFF_TAG_BITS_PER_SAMPLE, true).getIntArrayValue(); int bitsPerPixel = directory.findField(TIFF_TAG_BITS_PER_SAMPLE, true) .getIntValueOrArraySum(); TiffField predictorField = directory.findField(TIFF_TAG_PREDICTOR); if (null != predictorField) predictor = predictorField.getIntValueOrArraySum(); bitsPerSample, predictor, samplesPerPixel, width, height); TiffImageData imageData = directory.getTiffImageData();
TiffContents contents = tiffReader.readDirectories(bsf, true, formatCompliance); TiffDirectory td = contents.directories.get(index); Image bi = td.getTiffImage(tiffReader.getByteOrder(), null); Object width = td.getFieldValue(new TagInfo("", 256, TiffFieldTypeConstants.FIELD_TYPE_SHORT) {/**/}); Object height = td.getFieldValue(new TagInfo("", 257, TiffFieldTypeConstants.FIELD_TYPE_SHORT) {/**/}); int newWidth = w; int newHeight = (int) ((newWidth * ((Number)height).doubleValue()) / (((Number)width).doubleValue()));
public List getAllFields() throws ImageReadException { return directory.getDirectoryEntrys(); }
private JpegImageData getJpegRawImageData(ByteSource byteSource, TiffDirectory directory) throws ImageReadException, IOException { ImageDataElement element = directory.getJpegRawImageDataElement(); int offset = element.offset; int length = element.length; // Sony DCR-PC110 has an off-by-one error. if (offset + length == byteSource.getLength() + 1) length--; byte data[] = byteSource.getBlock(offset, length); return new JpegImageData(offset, length, data); }
public JpegImageData getJpegImageData() { return directory.getJpegImageData(); }
public TiffImageData getTiffImageData() { return directory.getTiffImageData(); }
public List collectRawImageData(ByteSource byteSource, Map params) throws ImageReadException, IOException { FormatCompliance formatCompliance = FormatCompliance.getDefault(); TiffContents contents = new TiffReader(isStrict(params)) .readDirectories(byteSource, true, formatCompliance); List result = new ArrayList(); for (int i = 0; i < contents.directories.size(); i++) { TiffDirectory directory = (TiffDirectory) contents.directories .get(i); List dataElements = directory.getTiffRawImageDataElements(); for (int j = 0; j < dataElements.size(); j++) { TiffDirectory.ImageDataElement element = (TiffDirectory.ImageDataElement) dataElements .get(j); byte bytes[] = byteSource.getBlock(element.offset, element.length); result.add(bytes); } } return result; }
TiffDirectory directory = new TiffDirectory(dirType, fields, offset, nextDirectoryOffset); if (directory.hasTiffImageData()) directory.setTiffImageData(rawImageData); if (directory.hasJpegImageData()) directory.setJpegImageData(rawJpegImageData);
public ArrayList getElements() throws ImageReadException { ArrayList result = new ArrayList(); result.add(header); for (int i = 0; i < directories.size(); i++) { TiffDirectory directory = (TiffDirectory) directories.get(i); result.add(directory); ArrayList fields = directory.entries; for (int j = 0; j < fields.size(); j++) { TiffField field = (TiffField) fields.get(j); TiffElement oversizeValue = field.getOversizeValueElement(); if (null != oversizeValue) result.add(oversizeValue); } if (directory.hasTiffImageData()) result.addAll(directory.getTiffRawImageDataElements()); if (directory.hasJpegImageData()) result.add(directory.getJpegRawImageDataElement()); } return result; }
ArrayList elements = directory.getTiffRawImageDataElements(); TiffImageData.Data data[] = new TiffImageData.Data[elements.size()]; for (int i = 0; i < elements.size(); i++) if (directory.imageDataInStrips()) .findField(TIFF_TAG_ROWS_PER_STRIP); if (null == rowsPerStripField) throw new ImageReadException("Can't find rows per strip field."); } else TiffField tileWidthField = directory.findField(TIFF_TAG_TILE_WIDTH); if (null == tileWidthField) throw new ImageReadException("Can't find tile width field."); .findField(TIFF_TAG_TILE_LENGTH); if (null == tileLengthField) throw new ImageReadException("Can't find tile length field.");
elements.add(directory); List fields = directory.getDirectoryEntrys(); for (int f = 0; f < fields.size(); f++) JpegImageData jpegImageData = directory.getJpegImageData(); if (jpegImageData != null) elements.add(jpegImageData); TiffImageData tiffImageData = directory.getTiffImageData(); if (tiffImageData != null)
public ArrayList getTiffRawImageDataElements() throws ImageReadException { TiffField tileOffsets = findField(TIFF_TAG_TILE_OFFSETS); TiffField tileByteCounts = findField(TIFF_TAG_TILE_BYTE_COUNTS); TiffField stripOffsets = findField(TIFF_TAG_STRIP_OFFSETS); TiffField stripByteCounts = findField(TIFF_TAG_STRIP_BYTE_COUNTS); if ((tileOffsets != null) && (tileByteCounts != null)) { return getRawImageDataElements(tileOffsets, tileByteCounts); } else if ((stripOffsets != null) && (stripByteCounts != null)) { return getRawImageDataElements(stripOffsets, stripByteCounts); } else throw new ImageReadException("Couldn't find image data."); }