Dart中的Uint8ClampedList

rei*_*eer 5 list dart clamp

我正在玩Dart,尤其是dart:typed_data.我偶然发现了一个课程,我不知道它的目的/专长是什么.我说的是Uint8ClampedList.文档中与Uint8List的区别在于句子

索引存储将该值钳位到范围0..0xFF.

那句话究竟意味着什么?为什么这个类存在?我很好奇.

lrn*_*lrn 6

"钳位"意味着低于0的值变为0,高于0xff的值变为0xff,当存储到Uint8ClampedList.时.0..0xff范围内的任何值都可以不加更改地存储到列表中.

这与其他类型列表不同,其中值仅被截断为低8(或16或32)位.

限制列表(和名称本身)反映了JavaScript 的Uint8ClampedArray.

我见过的夹紧的一种用法是用于RGB(A)彩色图像,其中真正过饱和的颜色(例如,和R值> 255)将被限制在最大值而不是环绕并变暗.它允许您对值进行一些转换,而不必关心处理溢出.请参阅Uint8ClampedArray规范 - 介绍它的数组类型与现有画布类型的行为相匹配.