ExrImage constructor
ExrImage(
- Uint8List bytes
Implementation
ExrImage(Uint8List bytes) {
final input = InputBuffer(bytes);
final magic = input.readUint32();
if (magic != signature) {
throw ImageException('File is not an OpenEXR image file.');
}
version = input.readByte();
if (version != exrVersion) {
throw ImageException('Cannot read version $version image files.');
}
flags = input.readUint24();
if (!_supportsFlags(flags)) {
throw ImageException('The file format version number\'s flag field '
'contains unrecognized flags.');
}
if (!_isMultiPart) {
final ExrPart part = InternalExrPart(_parts.length, _isTiled, input);
if (part.isValid) {
_parts.add(part as InternalExrPart);
}
} else {
while (true) {
final ExrPart part = InternalExrPart(_parts.length, _isTiled, input);
if (!part.isValid) {
break;
}
_parts.add(part as InternalExrPart);
}
}
if (_parts.isEmpty) {
throw ImageException('Error reading image header');
}
for (final part in _parts) {
(part as InternalExrPart).readOffsets(input);
}
_readImage(input);
}