@Override protected void initVars(String id) throws FormatException, IOException { super.initVars(id); initPOIService(); countImages(); }
@Override protected void countImages() { // count number of images files = (String[]) poi.getDocumentList().toArray(new String[0]); Arrays.sort(files, new Comparator<String>() { @Override public int compare(String o1, String o2) { final Integer n1 = getImageNumber(o1, -1); final Integer n2 = getImageNumber(o2, -1); return n1.compareTo(n2); } }); core.get(0).imageCount = 0; for (String file : files) { String uname = file.toUpperCase(); uname = uname.substring(uname.indexOf(File.separator) + 1); if (uname.endsWith("CONTENTS") && (uname.startsWith("IMAGE") || uname.indexOf("ITEM") != -1) && poi.getFileSize(file) > 1024) { int imageNumber = getImageNumber(file, 0); if (imageNumber >= getImageCount()) { core.get(0).imageCount++; } } } super.countImages(); coordinates = new int[getSeriesCount() * getImageCount()][4]; }
@Override protected void fillMetadataPass5(MetadataStore store) throws FormatException, IOException { super.fillMetadataPass5(store); for (String name : tagsToParse) { int imageNum = getImageNumber(name, -1); parseTags(imageNum, name, store); } }
initPOIService(); int bytes = FormatTools.getBytesPerPixel(getPixelType()); int pixel = bytes * getRGBChannelCount(); options.littleEndian = isLittleEndian(); options.interleaved = isInterleaved(); int[] coords = getZCTCoords(no); for (int q=0; q<coordinates.length; q++) { if (coordinates[q][0] == coords[0] && coordinates[q][1] == coords[1] && coordinates[q][2] == coords[2] && coordinates[q][3] == getSeries()) int row = getSizeX() * pixel; readPlane(currentPlane, x, y, w, h, buf); if (isRGB() && !isJPEG) {
int imageNum = getImageNumber(name, -1); if (imageNum == -1) { parseTags(imageNum, name, new DummyMetadata()); int imageNum = getImageNumber(name, -1); if (imageNum != -1) { try (RandomAccessInputStream s = poi.getDocumentStream(name)) { parseROIs(s, imageNum, name, store); dirName.toUpperCase().indexOf("ITEM") != -1) int imageNum = getImageNumber(dirName, getImageCount() == 1 ? 0 : -1); if (imageNum == -1) continue; getNextTag(s); getNextTag(s);
/** Parse all of the tags in a stream. */ private void parseTags(int image, String file, MetadataStore store) throws FormatException, IOException { ArrayList<Tag> tags = new ArrayList<Tag>(); try (RandomAccessInputStream s = poi.getDocumentStream(file)) { s.order(true); s.seek(8); int count = s.readInt(); for (int i=0; i<count; i++) { if (s.getFilePointer() + 2 >= s.length()) break; String value = DataTools.stripString(getNextTag(s)); s.skipBytes(2); int tagID = s.readInt(); s.skipBytes(6); if (tagID != 1047) { // Use 1025 only for ZVI. tags.add(new Tag(tagID, value, Context.MAIN)); } } parseMainTags(image, store, tags); } }
MetadataLevel level = getMetadataOptions().getMetadataLevel(); if (level == MetadataLevel.MINIMUM || level == MetadataLevel.NO_OVERLAYS) { return; if (s.readShort() == 8) { s.seek(tmp); layername = parseROIString(s); if (s.readShort() == 8) { s.seek(tmp); nshape.text = parseROIString(s); break; nshape.fontName = parseROIString(s); if (nshape.fontName == null) break; LOGGER.debug(" Font name={}", nshape.fontName); nshape.name = parseROIString(s); if (nshape.name == null) break; LOGGER.debug(" Name={}", nshape.name);
private void initPOIService() throws FormatException, IOException { try { ServiceFactory factory = new ServiceFactory(); poi = factory.getInstance(POIService.class); } catch (DependencyException de) { throw new FormatException("POI library not found", de); } poi.initialize(Location.getMappedId(getCurrentFile())); }
@Override protected void fillMetadataPass3(MetadataStore store) throws FormatException, IOException { super.fillMetadataPass3(store); // calculate tile dimensions and number of tiles if (core.size() > 1) { Integer[] t = tiles.keySet().toArray(new Integer[tiles.size()]); Arrays.sort(t); final List<Integer> tmpOffsets = new ArrayList<Integer>(); final List<String> tmpFiles = new ArrayList<String>(); int index = 0; for (Integer key : t) { int nTiles = tiles.get(key).intValue(); if (nTiles < getImageCount()) { tiles.remove(key); } else { for (int p=0; p<nTiles; p++) { tmpOffsets.add(offsets[index + p]); tmpFiles.add(imageFiles[index + p]); } } index += nTiles; } offsets = new int[tmpOffsets.size()]; for (int i=0; i<offsets.length; i++) { offsets[i] = tmpOffsets.get(i).intValue(); } imageFiles = tmpFiles.toArray(new String[tmpFiles.size()]); } }
initPOIService(); int bytes = FormatTools.getBytesPerPixel(getPixelType()); int pixel = bytes * getRGBChannelCount(); options.littleEndian = isLittleEndian(); options.interleaved = isInterleaved(); int[] coords = getZCTCoords(no); for (int q=0; q<coordinates.length; q++) { if (coordinates[q][0] == coords[0] && coordinates[q][1] == coords[1] && coordinates[q][2] == coords[2] && coordinates[q][3] == getSeries()) int row = getSizeX() * pixel; readPlane(currentPlane, x, y, w, h, buf); if (isRGB() && !isJPEG) {
int imageNum = getImageNumber(name, -1); if (imageNum == -1) { parseTags(imageNum, name, new DummyMetadata()); int imageNum = getImageNumber(name, -1); if (imageNum != -1) { try (RandomAccessInputStream s = poi.getDocumentStream(name)) { parseROIs(s, imageNum, name, store); dirName.toUpperCase().indexOf("ITEM") != -1) int imageNum = getImageNumber(dirName, getImageCount() == 1 ? 0 : -1); if (imageNum == -1) continue; getNextTag(s); getNextTag(s);
@Override protected void fillMetadataPass5(MetadataStore store) throws FormatException, IOException { super.fillMetadataPass5(store); for (String name : tagsToParse) { int imageNum = getImageNumber(name, -1); parseTags(imageNum, name, store); } }
/** Parse all of the tags in a stream. */ private void parseTags(int image, String file, MetadataStore store) throws FormatException, IOException { ArrayList<Tag> tags = new ArrayList<Tag>(); try (RandomAccessInputStream s = poi.getDocumentStream(file)) { s.order(true); s.seek(8); int count = s.readInt(); for (int i=0; i<count; i++) { if (s.getFilePointer() + 2 >= s.length()) break; String value = DataTools.stripString(getNextTag(s)); s.skipBytes(2); int tagID = s.readInt(); s.skipBytes(6); if (tagID != 1047) { // Use 1025 only for ZVI. tags.add(new Tag(tagID, value, Context.MAIN)); } } parseMainTags(image, store, tags); } }
MetadataLevel level = getMetadataOptions().getMetadataLevel(); if (level == MetadataLevel.MINIMUM || level == MetadataLevel.NO_OVERLAYS) { return; if (s.readShort() == 8) { s.seek(tmp); layername = parseROIString(s); if (s.readShort() == 8) { s.seek(tmp); nshape.text = parseROIString(s); break; nshape.fontName = parseROIString(s); if (nshape.fontName == null) break; LOGGER.debug(" Font name={}", nshape.fontName); nshape.name = parseROIString(s); if (nshape.name == null) break; LOGGER.debug(" Name={}", nshape.name);
private void initPOIService() throws FormatException, IOException { try { ServiceFactory factory = new ServiceFactory(); poi = factory.getInstance(POIService.class); } catch (DependencyException de) { throw new FormatException("POI library not found", de); } poi.initialize(Location.getMappedId(getCurrentFile())); }
@Override protected void fillMetadataPass3(MetadataStore store) throws FormatException, IOException { super.fillMetadataPass3(store); // calculate tile dimensions and number of tiles if (core.size() > 1) { Integer[] t = tiles.keySet().toArray(new Integer[tiles.size()]); Arrays.sort(t); final List<Integer> tmpOffsets = new ArrayList<Integer>(); final List<String> tmpFiles = new ArrayList<String>(); int index = 0; for (Integer key : t) { int nTiles = tiles.get(key).intValue(); if (nTiles < getImageCount()) { tiles.remove(key); } else { for (int p=0; p<nTiles; p++) { tmpOffsets.add(offsets[index + p]); tmpFiles.add(imageFiles[index + p]); } } index += nTiles; } offsets = new int[tmpOffsets.size()]; for (int i=0; i<offsets.length; i++) { offsets[i] = tmpOffsets.get(i).intValue(); } imageFiles = tmpFiles.toArray(new String[tmpFiles.size()]); } }
@Override protected void countImages() { // count number of images files = (String[]) poi.getDocumentList().toArray(new String[0]); Arrays.sort(files, new Comparator<String>() { @Override public int compare(String o1, String o2) { final Integer n1 = getImageNumber(o1, -1); final Integer n2 = getImageNumber(o2, -1); return n1.compareTo(n2); } }); core.get(0).imageCount = 0; for (String file : files) { String uname = file.toUpperCase(); uname = uname.substring(uname.indexOf(File.separator) + 1); if (uname.endsWith("CONTENTS") && (uname.startsWith("IMAGE") || uname.indexOf("ITEM") != -1) && poi.getFileSize(file) > 1024) { int imageNumber = getImageNumber(file, 0); if (imageNumber >= getImageCount()) { core.get(0).imageCount++; } } } super.countImages(); coordinates = new int[getSeriesCount() * getImageCount()][4]; }
@Override protected void initVars(String id) throws FormatException, IOException { super.initVars(id); initPOIService(); countImages(); }