public ProfileHeader(byte[] data)
public ProfileHeader()
  public ProfileHeader(byte[] data)  {    ByteBuffer buf = ByteBuffer.wrap(data);    // Get size (the sign bit shouldn't matter. 	    // A valid profile can never be +2Gb)    size = buf.getInt(ICC_Profile.icHdrSize);    // CMM ID    cmmId = buf.getInt(ICC_Profile.icHdrCmmId);    // Version number    majorVersion = (int) (data[ICC_Profile.icHdrVersion]);    minorVersion = (int) (data[ICC_Profile.icHdrVersion + 1]);    // Profile/Device class    int classSig = buf.getInt(ICC_Profile.icHdrDeviceClass);    profileClass = -1;    for (int i = 0; i < classMap.length; i += 2)      if (classMap[i] == classSig)        {	  profileClass = classMap[i + 1];	  break;        }    // get the data color space    int csSig = buf.getInt(ICC_Profile.icHdrColorSpace);    colorSpace = -1;    for (int i = 0; i < csTypeMap.length; i += 2)      if (csTypeMap[i] == csSig)        {	  colorSpace = csTypeMap[i + 1];	  break;        }    // get the profile color space (PCS), must be xyz or lab except    // for device-link-class profiles    int pcsSig = buf.getInt(ICC_Profile.icHdrPcs);    profileColorSpace = -1;    if (profileClass != ICC_Profile.CLASS_DEVICELINK)      {	if (pcsSig == ICC_Profile.icSigXYZData)	  profileColorSpace = ColorSpace.TYPE_XYZ;	if (pcsSig == ICC_Profile.icSigLabData)	  profileColorSpace = ColorSpace.TYPE_Lab;      }    else      {	for (int i = 0; i < csTypeMap.length; i += 2)	  if (csTypeMap[i] == pcsSig)	    {	      profileColorSpace = csTypeMap[i + 1];	      break;	    }      }    // creation timestamp    timestamp = new byte[8];    System.arraycopy(data, ICC_Profile.icHdrDate, timestamp, 0, 8);    // magic number    magic = buf.getInt(ICC_Profile.icHdrMagic);    //  platform info    platform = buf.getInt(ICC_Profile.icHdrPlatform);    // get flags    flags = buf.getInt(ICC_Profile.icHdrFlags);    // get manufacturer sign    manufacturerSig = buf.getInt(ICC_Profile.icHdrManufacturer);    // get header model    modelSig = buf.getInt(ICC_Profile.icHdrModel);    // attributes    attributes = new byte[8];    System.arraycopy(data, ICC_Profile.icHdrAttributes, attributes, 0, 8);    // rendering intent    intent = buf.getInt(ICC_Profile.icHdrRenderingIntent);    // illuminant info     illuminant = new byte[12];    System.arraycopy(data, ICC_Profile.icHdrIlluminant, illuminant, 0, 12);    // Creator signature    creatorSig = buf.getInt(ICC_Profile.icHdrCreator);    // The rest of the header (Total size: 128 bytes) is unused..  }