24 lines
826 B
JavaScript
24 lines
826 B
JavaScript
import { Skia, AlphaType, ColorType, } from '@shopify/react-native-skia';
|
||
/** pickMap 像素值 regionId+1 → RGBA 纹理(R 通道存查表码) */
|
||
export function pickBufferToSkImage(pickBuffer, cols, rows) {
|
||
if (pickBuffer.length !== cols * rows) {
|
||
return null;
|
||
}
|
||
const rgba = new Uint8Array(cols * rows * 4);
|
||
for (let i = 0; i < pickBuffer.length; i++) {
|
||
const o = i * 4;
|
||
const code = pickBuffer[i];
|
||
rgba[o] = code;
|
||
rgba[o + 1] = code;
|
||
rgba[o + 2] = code;
|
||
rgba[o + 3] = 255;
|
||
}
|
||
const data = Skia.Data.fromBytes(rgba);
|
||
return Skia.Image.MakeImage({
|
||
width: cols,
|
||
height: rows,
|
||
alphaType: AlphaType.Opaque,
|
||
colorType: ColorType.RGBA_8888,
|
||
}, data, cols * 4);
|
||
}
|
||
//# sourceMappingURL=pickMapTexture.js.map
|