/** * Primary constructor for <code>ImageObject</code>. Will store the buffer reference and calculate * the segment offsets and lengths for use in retrieving data for this object. It also stores all * image segments so it can recreate original buffer. * * @param buffer The byte array containing the ImageObject values. */ public ImageObject(ByteArray buffer) { byte[] cimsObjectHeaderArray = buffer.read(0, CimsObjectHeader.RECORD_LENGTH); cimsObjectHeader = new CimsObjectHeader(cimsObjectHeaderArray); // initialize coded data header from input buffer int offset0 = cimsObjectHeader.getSegmentOffset(0); int length0 = cimsObjectHeader.getSegmentLength(0); byte[] cimsCodedDataHeaderArray = new byte[CimsCodedDataHeader.RECORD_LENGTH]; buffer.read(offset0, cimsObjectHeaderArray, 0, length0); cimsCodedDataHeader = new CimsCodedDataHeader(cimsCodedDataHeaderArray); // initialize segment array, i.e. load all images for (int i = 0; i < segmentArray.length; i++) { int segmentOffset = cimsObjectHeader.getSegmentOffset(i + 1); int segmentLength = cimsObjectHeader.getSegmentLength(i + 1); if (segmentLength > 0) { segmentArray[i] = buffer.read(segmentOffset, segmentLength); } } }