void toFragments(Fragments fragments) { for (Object value : values) { fragments.add(value); } }
@Override public boolean addAll(int index, Collection<? extends Object> c) { for (Object o : c) add(index++, o); return !c.isEmpty(); }
@Override public boolean add(Object frag) { add(size(), frag); return true; }
private void startDataFragment(int number) { if (dataFragments == null) dataFragments = items.getLast() .newFragments(privateCreator, tag, vr, 10); while (dataFragments.size() < number-1) dataFragments.add(ByteUtils.EMPTY_BYTES); }
@Override public void readValue(DicomInputStream dis, Fragments frags) throws IOException { checkIsThis(dis); if (excludeBulkData) { skipFully(length); } else if (length == 0) { frags.add(ByteUtils.EMPTY_BYTES); } else if (length == BulkData.MAGIC_LEN && super.in instanceof ObjectInputStream) { frags.add(BulkData.deserializeFrom((ObjectInputStream) super.in)); } else if (includeBulkDataURI) { frags.add(bulkDataCreator.createBulkData(this)); } else { byte[] b = readValue(); if (bigEndian != frags.bigEndian()) frags.vr().toggleEndian(b, false); frags.add(b); } }
pixelData.add(frag); if( offset==0 && frame>0) { start = -1;
private void set(String privateCreator, int tag, Fragments src) { boolean toogleEndian = src.bigEndian() != bigEndian; VR vr = src.vr(); Fragments dst = newFragments(privateCreator, tag, vr, src.size()); for (Object frag : src) dst.add(toggleEndian(vr, frag, toogleEndian)); }
private void addPixelData(Attributes dest, Attributes src, int frame) { VR.Holder vr = new VR.Holder(); Object pixelData = src.getValue(Tag.PixelData, vr); if (pixelData instanceof byte[]) { dest.setBytes(Tag.PixelData, vr.vr, extractPixelData( (byte[]) pixelData, frame, calcFrameLength(src))); } else if (pixelData instanceof BulkData) { dest.setValue(Tag.PixelData, vr.vr, extractPixelData( (BulkData) pixelData, frame, calcFrameLength(src))); } else { Fragments destFrags = dest.newFragments(Tag.PixelData, vr.vr, 2); destFrags.add(null); destFrags.add(((Fragments) pixelData).get(frame + 1)); } }
private void addPixelData(Attributes dest, Attributes src, int frame) { VR.Holder vr = new VR.Holder(); Object pixelData = src.getValue(Tag.PixelData, vr); if (pixelData instanceof byte[]) { dest.setBytes(Tag.PixelData, vr.vr, extractPixelData( (byte[]) pixelData, frame, calcFrameLength(src))); } else if (pixelData instanceof BulkData) { dest.setValue(Tag.PixelData, vr.vr, extractPixelData( (BulkData) pixelData, frame, calcFrameLength(src))); } else { Fragments destFrags = dest.newFragments(Tag.PixelData, vr.vr, 2); destFrags.add(null); destFrags.add(((Fragments) pixelData).get(frame + 1)); } }
@Override public void readValue(DicomInputStream dis, Fragments frags) throws IOException { int len = dis.length(); if (dis.isExcludeBulkData()) { dis.skipFully(len); } else try { frags.add(ByteUtils.EMPTY_BYTES); // increment size if (len > 0) { startElement("DataFragment", "number", frags.size()); if (dis.isIncludeBulkDataURI()) { writeBulkData(dis.createBulkData(dis)); } else { byte[] b = dis.readValue(); if (dis.bigEndian()) frags.vr().toggleEndian(b, false); writeInlineBinary(b); } endElement("DataFragment"); } } catch (SAXException e) { throw new IOException(e); } }
/** Initializes the pixel data reading from an image input stream */ private void initPixelDataIIS(DicomInputStream dis) throws IOException { if( pixelDataLength==0 ) return; if( pixelDataLength>0 ) { pixelData = new BulkData("pixeldata://", dis.getPosition(), dis.length(),dis.bigEndian()); metadata.getAttributes().setValue(Tag.PixelData, pixelDataVR, pixelData); return; } dis.readItemHeader(); byte[] b = new byte[dis.length()]; dis.readFully(b); long start = dis.getPosition(); pixelDataFragments = new Fragments(pixelDataVR, dis.bigEndian(), frames); pixelDataFragments.add(b); generateOffsetLengths(pixelDataFragments, frames,b, start); }