Конструктор Uint8ClampedList.view
- ByteBuffer buffer,
- [int offsetInBytes = 0,
- int? length]
Создаёт Uint8ClampedList вид указанного региона в указанном байтовом буфере buffer.
Изменения в Uint8List будут видны в байтовом буфере и наоборот. Если индекс offsetInBytes региона не указан, он по умолчанию равен нулю (первый байт в байтовом буфере). Если длина не указана, вид простирается до конца байтового буфера.
offsetInBytes и length должны быть неотрицательными, а offsetInBytes + (length * bytesPerElement) должно быть меньше или равно длине buffer.
Обратите внимание, что при создании вида из списка TypedData или байтовых данных, этот список или байтовые данные могут сами быть видом на больший буфер с TypedData.offsetInBytes больше нуля. Просто выполнение Uint8ClampedList.view(other.buffer, 0, count) может не указывать на нужные байты. Вместо этого вам может потребоваться сделать:
Uint8ClampedList.view(other.buffer, other.offsetInBytes, count)
В качестве альтернативы используйте Uint8ClampedList.sublistView, который включает это вычисление:
Uint8ClampedList.sublistView(other, 0, count);
(Третий аргумент является конечным индексом, а не длиной, поэтому, если вы начинаете с позиции больше нуля, вам не нужно уменьшать счётчик соответственно).
Реализация
factory Uint8ClampedList.view(ByteBuffer buffer,
[int offsetInBytes = 0, int? length]) {
return buffer.asUint8ClampedList(offsetInBytes, length);
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-typed_data/Uint8ClampedList/Uint8ClampedList.view.html