mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-07-28 17:10:02 +03:00
Use binary to make comparing to the specification easier
This commit is contained in:
parent
8ca44425c8
commit
dcf674a48f
|
@ -139,7 +139,7 @@ class QoiEncoder(ImageFile.PyEncoder):
|
||||||
_previously_seen_pixels: dict[int, tuple[int, int, int, int]] = {}
|
_previously_seen_pixels: dict[int, tuple[int, int, int, int]] = {}
|
||||||
|
|
||||||
def _write_run(self, run: int) -> bytes:
|
def _write_run(self, run: int) -> bytes:
|
||||||
return o8(0xC0 | (run - 1)) # QOI_OP_RUN
|
return o8(0b11000000 | (run - 1)) # QOI_OP_RUN
|
||||||
|
|
||||||
def _delta(self, left: int, right: int) -> int:
|
def _delta(self, left: int, right: int) -> int:
|
||||||
result = (left - right) & 0xFF
|
result = (left - right) & 0xFF
|
||||||
|
@ -191,16 +191,19 @@ class QoiEncoder(ImageFile.PyEncoder):
|
||||||
|
|
||||||
if -2 <= dr < 2 and -2 <= dg < 2 and -2 <= db < 2:
|
if -2 <= dr < 2 and -2 <= dg < 2 and -2 <= db < 2:
|
||||||
data += o8(
|
data += o8(
|
||||||
0x40 | (dr + 2) << 4 | (dg + 2) << 2 | (db + 2)
|
0b01000000
|
||||||
|
| (dr + 2) << 4
|
||||||
|
| (dg + 2) << 2
|
||||||
|
| (db + 2)
|
||||||
) # QOI_OP_DIFF
|
) # QOI_OP_DIFF
|
||||||
elif -8 <= dgr < 8 and -32 <= dg < 32 and -8 <= dgb < 8:
|
elif -8 <= dgr < 8 and -32 <= dg < 32 and -8 <= dgb < 8:
|
||||||
data += o8(0x80 | (dg + 32)) # QOI_OP_LUMA
|
data += o8(0b10000000 | (dg + 32)) # QOI_OP_LUMA
|
||||||
data += o8((dgr + 8) << 4 | (dgb + 8))
|
data += o8((dgr + 8) << 4 | (dgb + 8))
|
||||||
else:
|
else:
|
||||||
data += o8(0xFE) # QOI_OP_RGB
|
data += o8(0b11111110) # QOI_OP_RGB
|
||||||
data += bytes(pixel[:3])
|
data += bytes(pixel[:3])
|
||||||
else:
|
else:
|
||||||
data += o8(0xFF) # QOI_OP_RGBA
|
data += o8(0b11111111) # QOI_OP_RGBA
|
||||||
data += bytes(pixel)
|
data += bytes(pixel)
|
||||||
|
|
||||||
self._previous_pixel = pixel
|
self._previous_pixel = pixel
|
||||||
|
|
Loading…
Reference in New Issue
Block a user