@Override public void writeTo(DicomOutputStream out, VR vr) throws IOException { InputStream in = openStream(); try { if (this.bigEndian != out.isBigEndian()) StreamUtils.copy(in, out, length, vr.numEndianBytes()); else StreamUtils.copy(in, out, length); if ((length & 1) != 0) out.write(vr.paddingByte()); } finally { in.close(); } }
private void copyPixelData() throws IOException { int length = dis.length(); writeDataset(); dos.writeHeader(Tag.PixelData, dis.vr(), length); if (length == -1) { dis.readValue(dis, dataset); dos.writeHeader(Tag.SequenceDelimitationItem, null, 0); } else { if (dis.bigEndian() == dos.isBigEndian()) StreamUtils.copy(dis, dos, length, buffer()); else StreamUtils.copy(dis, dos, length, dis.vr().numEndianBytes(), buffer()); } }