/* @see loci.formats.in.BaseTiffReader#initStandardMetadata() */ protected void initStandardMetadata() throws FormatException, IOException { super.initStandardMetadata(); ifds = tiffParser.getIFDs(); for (IFD ifd : ifds) { tiffParser.fillInIFD(ifd); } String comment = ifds.get(0).getComment(); String[] values = comment.split(";"); for (String v : values) { int eq = v.indexOf("="); if (eq < 0) continue; String key = v.substring(0, eq).trim(); String value = v.substring(eq + 1).trim(); addGlobalMeta(key, value); if (key.equals("OverlapsXY")) { String[] overlapValues = value.split(" "); overlaps = new int[ifds.size() * 2]; for (int i = 0; i < overlapValues.length; i++) { overlaps[i] = Integer.parseInt(overlapValues[i]); } } } core = new CoreMetadata[ifds.size()]; for (int i = 0; i < core.length; i++) { setSeries(i); core[i] = new CoreMetadata(); if (getMetadataOptions().getMetadataLevel() != MetadataLevel.MINIMUM) {} } setSeries(0); // repopulate core metadata for (int s = 0; s < core.length; s++) { IFD ifd = ifds.get(s); PhotoInterp p = ifd.getPhotometricInterpretation(); int samples = ifd.getSamplesPerPixel(); core[s].rgb = samples > 1 || p == PhotoInterp.RGB; long numTileRows = ifd.getTilesPerColumn() - 1; long numTileCols = ifd.getTilesPerRow() - 1; int overlapX = overlaps[s * 2]; int overlapY = overlaps[s * 2 + 1]; core[s].sizeX = (int) (ifd.getImageWidth() - (numTileCols * overlapX)); core[s].sizeY = (int) (ifd.getImageLength() - (numTileRows * overlapY)); core[s].sizeZ = 1; core[s].sizeT = 1; core[s].sizeC = core[s].rgb ? samples : 1; core[s].littleEndian = ifd.isLittleEndian(); core[s].indexed = p == PhotoInterp.RGB_PALETTE && (get8BitLookupTable() != null || get16BitLookupTable() != null); core[s].imageCount = 1; core[s].pixelType = ifd.getPixelType(); core[s].metadataComplete = true; core[s].interleaved = false; core[s].falseColor = false; core[s].dimensionOrder = "XYCZT"; core[s].thumbnail = s > 0; } // look for all of the other associated metadata files files = new ArrayList<String>(); Location baseFile = new Location(currentId).getAbsoluteFile(); Location parent = baseFile.getParentFile(); String name = baseFile.getName(); if (name.indexOf(".") >= 0) { name = name.substring(0, name.indexOf(".") + 1); } roiFile = new Location(parent, name + "ROI").getAbsolutePath(); roiDrawFile = new Location(parent, name + "ROI-draw").getAbsolutePath(); String[] list = parent.list(true); for (String f : list) { if (!f.equals(baseFile.getName())) { files.add(new Location(parent, f).getAbsolutePath()); } } }