win2xcur/win2xcur/utils.py

13 lines
355 B
Python
Raw Permalink Normal View History

2022-03-17 01:46:33 -04:00
from typing import Any
2022-03-17 01:46:33 -04:00
import numpy as np
def premultiply_alpha(source: bytes) -> bytes:
2022-03-17 01:46:33 -04:00
buffer: np.ndarray[Any, np.dtype[np.double]] = np.frombuffer(source, dtype=np.uint8).astype(np.double)
alpha = buffer[3::4] / 255.0
buffer[0::4] *= alpha
buffer[1::4] *= alpha
buffer[2::4] *= alpha
2022-03-17 01:46:33 -04:00
return buffer.astype(np.uint8).tobytes()