pdfImageColorKeyRanges function

List<(int, int)>? pdfImageColorKeyRanges(
  1. CosDocument cos,
  2. CosDictionary dict,
  3. int components
)

Color-key masking ranges (ยง8.9.6.4): /Mask as an array of min max pairs in raw sample space; samples inside every range go transparent.

Implementation

List<(int, int)>? pdfImageColorKeyRanges(
    CosDocument cos, CosDictionary dict, int components) {
  final raw = cos.resolve(dict['Mask']);
  if (raw is! CosArray || raw.length < components * 2) return null;
  final values = <int>[];
  for (var i = 0; i < components * 2; i++) {
    final n = cos.resolve(raw[i]);
    if (n is! CosInteger) return null;
    values.add(n.value);
  }
  return [
    for (var c = 0; c < components; c++) (values[c * 2], values[c * 2 + 1]),
  ];
}