我有一个程序试图在 Kotlin 程序中设置表示为Uint8ClampedArray的 ImageData 值。根据set 方法的规范,我需要将一个 Kotlin 字节传递到数组中,但 Kotlin 字节是有符号的:
...create context...
//setup pix as a js Uint8ClampedArray
val imgd = context.createImageData(100.0, 100.0)
val pix = imgd.data //pix is now a Uint8ClampedArray
//sets pix[40] to 127
pix[40] = 127
//gives an error - Kotlin bytes are signed, so it cannot be passed as a literal
pix[40] = 200
//also doesn't work, still converts to a signed byte
pix[40] = 200.toByte()
我的问题是 Javascript 只会将其读取为 127,而不是 255。如何将此数组的值设置为大于 127?我什至找不到一种 hack-y 方法来让 JS 结果读取我想要的内容,因为最终赋值需要一个不允许大于 127 的值的有符号字节。