sliceFromRGBA
Alpha multiplies pixels in place
Parameters
- pixels:[]u8
- []u8
Source
Implementation
pub fn sliceFromRGBA(pixels: []u8) []Color.PMA {
for (0..pixels.len / 4) |ii| {
const i = ii * 4;
const a = pixels[i + 3];
pixels[i + 0] = @intCast(@divTrunc(@as(u16, pixels[i + 0]) * a, 255));
pixels[i + 1] = @intCast(@divTrunc(@as(u16, pixels[i + 1]) * a, 255));
pixels[i + 2] = @intCast(@divTrunc(@as(u16, pixels[i + 2]) * a, 255));
}
return @ptrCast(pixels);
}