private byte[] lutData(Attributes ds, int[] desc, int dataTag, int segmTag) { int len = desc[0] == 0 ? 0x10000 : desc[0]; int bits = desc[2]; byte[] data = ds.getSafeBytes(dataTag); if (data == null) { int[] segm = ds.getInts(segmTag); if (segm == null) { throw new IllegalArgumentException("Missing LUT Data!"); } if (bits == 8) { throw new IllegalArgumentException( "Segmented LUT Data with LUT Descriptor: bits=8"); } data = new byte[len]; inflateSegmentedLut(segm, data); } else if (bits == 16 || data.length != len) { if (data.length != len << 1) lutLengthMismatch(data.length, len); int hilo = ds.bigEndian() ? 0 : 1; if (bits == 8) hilo = 1 - hilo; // padded high bits -> use low bits data = LookupTableFactory.halfLength(data, hilo); } return data; }
private byte[] lutData(Attributes ds, int[] desc, int dataTag, int segmTag) { int len = desc[0] == 0 ? 0x10000 : desc[0]; int bits = desc[2]; byte[] data = ds.getSafeBytes(dataTag); if (data == null) { int[] segm = ds.getInts(segmTag); if (segm == null) { throw new IllegalArgumentException("Missing LUT Data!"); } if (bits == 8) { throw new IllegalArgumentException( "Segmented LUT Data with LUT Descriptor: bits=8"); } data = new byte[len]; inflateSegmentedLut(segm, data); } else if (bits == 16 || data.length != len) { if (data.length != len << 1) lutLengthMismatch(data.length, len); int hilo = ds.bigEndian() ? 0 : 1; if (bits == 8) hilo = 1 - hilo; // padded high bits -> use low bits data = LookupTableFactory.halfLength(data, hilo); } return data; }
lutLengthMismatch(x, out.length);
lutLengthMismatch(x, out.length);