/** Constructs a new ND2 reader. */ public ND2Reader() { super("Nikon ND2", "nd2"); nativeReader = new NativeND2Reader(); legacyReader = new LegacyND2Reader(); nativeReaderInitialized = false; legacyReaderInitialized = false; domains = new String[] {FormatTools.LM_DOMAIN}; }
lastChannel = split ? no % getSizeC() : 0; int planeIndex = split ? no / getSizeC() : no; in.seek(offsets[getSeries()][planeIndex]); int bpp = FormatTools.getBytesPerPixel(getPixelType()); int pixel = bpp * getRGBChannelCount(); if (split) pixel *= getSizeC(); int totalPlanes = split ? getImageCount() / getSizeC() : getImageCount(); in.length() : offsets[getSeries()][planeIndex + 1]; options.littleEndian = isLittleEndian(); options.interleaved = isInterleaved(); options.maxBytes = (int) maxFP; int scanlinePad = getScanlinePad(); if (codec == null) codec = createCodec(isJPEG); byte[] t = null; try { if ((getSizeX() + scanlinePad) * getSizeY() * pixel > t.length) { int rowLength = getSizeX() * pixel + scanlinePad * bpp; int destLength = w * pixel; if (p + destLength <= t.length) { System.arraycopy(t, p, pix, row * destLength, destLength);
private void copyPixels(int x, int y, int w, int h, int bpp, int scanlinePad, byte[] pix, byte[] buf, boolean split) throws IOException { if (split) { pix = ImageTools.splitChannels(pix, lastChannel, getEffectiveSizeC(), bpp, false, true); } RandomAccessInputStream s = new RandomAccessInputStream(pix); readPlane(s, x, y, w, h, scanlinePad, buf); s.close(); }
boolean useChunkMap = useChunkMap(); LOGGER.debug("Attempting to use chunk map = {}", useChunkMap); iterateIn(in, stop); addGlobalMeta(attributeName, valueOrLength); if (trueSizeX == 0) { trueSizeX = valueOrLength; imageLengths.add(new long[] {realLength, entry.length - nameLength - 16, getSizeX() * getSizeY()}); imageNames.add(entry.name.substring(12)); fp, nameLength, dataLength); imageOffsets.add(fp); imageLengths.add(new long[] {nameLength, dataLength, getSizeX() * getSizeY()}); char b = (char) in.readByte(); while (b != '!') { if (getDimensionOrder() == null) { core.get(0, 0).dimensionOrder = ""; addGlobalMeta(attributeName, valueOrLength); addGlobalMeta(attributeName, value.toString()); addGlobalMeta(attributeName, valueOrLength + ", " + v2 + ", " + v3); else if (getMetadataOptions().getMetadataLevel() !=
MetadataStore store = makeFilterMetadata(); MetadataTools.populatePixels(store, this, true); String filename = new Location(getCurrentFile()).getName(); if (handler != null) { ArrayList<String> posNames = handler.getPositionNames(); int nameWidth = String.valueOf(getSeriesCount()).length(); for (int i=0; i<getSeriesCount(); i++) { String seriesSuffix = String.format("(series %0" + nameWidth + "d)", i + 1); String suffix = (i < posNames.size() && !posNames.get(i).equals("")) ? colors = new int[getEffectiveSizeC()]; if (channelNames.size() < getEffectiveSizeC() && backupHandler != null) { channelNames = backupHandler.getChannelNames(); else if (channelNames.size() < getEffectiveSizeC()) { channelNames = textChannelNames; for (int c=0; c<getEffectiveSizeC(); c++) { if (c < channelNames.size()) { String channelName = channelNames.get(c); if (getMetadataOptions().getMetadataLevel() == MetadataLevel.MINIMUM) { return; for (int i=0; i<getSeriesCount(); i++) { for (int c=0; c<getEffectiveSizeC(); c++) {
addGlobalMeta(entry.getKey(), entry.getValue()); if (core.get(0, 0).sizeZ == 0 && getSizeT() != offsetCount) { core.get(0, 0).sizeT = 0; textString = sanitizeControl(textString);
iterateIn(in, off + in.getFilePointer()); iterateIn(in, endOffset); addGlobalMeta(name, value);
boolean useChunkMap = useChunkMap(); LOGGER.debug("Attempting to use chunk map = {}", useChunkMap); iterateIn(in, stop); addGlobalMeta(attributeName, valueOrLength); if (trueSizeX == 0) { trueSizeX = valueOrLength; imageLengths.add(new long[] {realLength, entry.length - nameLength - 16, getSizeX() * getSizeY()}); imageNames.add(entry.name.substring(12)); fp, nameLength, dataLength); imageOffsets.add(fp); imageLengths.add(new long[] {nameLength, dataLength, getSizeX() * getSizeY()}); char b = (char) in.readByte(); while (b != '!') { if (getDimensionOrder() == null) { core.get(0, 0).dimensionOrder = ""; addGlobalMeta(attributeName, valueOrLength); addGlobalMeta(attributeName, value.toString()); addGlobalMeta(attributeName, valueOrLength + ", " + v2 + ", " + v3); else if (getMetadataOptions().getMetadataLevel() !=
MetadataStore store = makeFilterMetadata(); MetadataTools.populatePixels(store, this, true); String filename = new Location(getCurrentFile()).getName(); if (handler != null) { ArrayList<String> posNames = handler.getPositionNames(); int nameWidth = String.valueOf(getSeriesCount()).length(); for (int i=0; i<getSeriesCount(); i++) { String seriesSuffix = String.format("(series %0" + nameWidth + "d)", i + 1); String suffix = (i < posNames.size() && !posNames.get(i).equals("")) ? colors = new int[getEffectiveSizeC()]; if (channelNames.size() < getEffectiveSizeC() && backupHandler != null) { channelNames = backupHandler.getChannelNames(); else if (channelNames.size() < getEffectiveSizeC()) { channelNames = textChannelNames; for (int c=0; c<getEffectiveSizeC(); c++) { if (c < channelNames.size()) { String channelName = channelNames.get(c); if (getMetadataOptions().getMetadataLevel() == MetadataLevel.MINIMUM) { return; for (int i=0; i<getSeriesCount(); i++) { for (int c=0; c<getEffectiveSizeC(); c++) {
addGlobalMeta(entry.getKey(), entry.getValue()); if (core.get(0, 0).sizeZ == 0 && getSizeT() != offsetCount) { core.get(0, 0).sizeT = 0; textString = sanitizeControl(textString);
private void copyPixels(int x, int y, int w, int h, int bpp, int scanlinePad, byte[] pix, byte[] buf, boolean split) throws IOException { if (split) { pix = ImageTools.splitChannels(pix, lastChannel, getEffectiveSizeC(), bpp, false, true); } RandomAccessInputStream s = new RandomAccessInputStream(pix); readPlane(s, x, y, w, h, scanlinePad, buf); s.close(); }
iterateIn(in, off + in.getFilePointer()); iterateIn(in, endOffset); addGlobalMeta(name, value);
lastChannel = split ? no % getSizeC() : 0; int planeIndex = split ? no / getSizeC() : no; in.seek(offsets[getSeries()][planeIndex]); int bpp = FormatTools.getBytesPerPixel(getPixelType()); int pixel = bpp * getRGBChannelCount(); if (split) pixel *= getSizeC(); int totalPlanes = split ? getImageCount() / getSizeC() : getImageCount(); in.length() : offsets[getSeries()][planeIndex + 1]; options.littleEndian = isLittleEndian(); options.interleaved = isInterleaved(); options.maxBytes = (int) maxFP; int scanlinePad = getScanlinePad(); if (codec == null) codec = createCodec(isJPEG); byte[] t = null; try { if ((getSizeX() + scanlinePad) * getSizeY() * pixel > t.length) { int rowLength = getSizeX() * pixel + scanlinePad * bpp; int destLength = w * pixel; if (p + destLength <= t.length) { System.arraycopy(t, p, pix, row * destLength, destLength);
/** Constructs a new ND2 reader. */ public ND2Reader() { super("Nikon ND2", "nd2"); nativeReader = new NativeND2Reader(); legacyReader = new LegacyND2Reader(); nativeReaderInitialized = false; legacyReaderInitialized = false; domains = new String[] {FormatTools.LM_DOMAIN}; }