mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-07-28 08:59:57 +03:00
Only calculate LUMA deltas when necessary
This commit is contained in:
parent
a714db9057
commit
2e8e86cba1
|
@ -182,12 +182,10 @@ class QoiEncoder(ImageFile.PyEncoder):
|
|||
self._previously_seen_pixels[hash_value] = pixel
|
||||
|
||||
pr, pg, pb, pa = self._previous_pixel
|
||||
if a == pa:
|
||||
if pa == a:
|
||||
dr = self._delta(r, pr)
|
||||
dg = self._delta(g, pg)
|
||||
db = self._delta(b, pb)
|
||||
dgr = self._delta(dr, dg)
|
||||
dgb = self._delta(db, dg)
|
||||
|
||||
if -2 <= dr < 2 and -2 <= dg < 2 and -2 <= db < 2:
|
||||
data += o8(
|
||||
|
@ -196,7 +194,10 @@ class QoiEncoder(ImageFile.PyEncoder):
|
|||
| (dg + 2) << 2
|
||||
| (db + 2)
|
||||
) # QOI_OP_DIFF
|
||||
elif -8 <= dgr < 8 and -32 <= dg < 32 and -8 <= dgb < 8:
|
||||
else:
|
||||
dgr = self._delta(dr, dg)
|
||||
dgb = self._delta(db, dg)
|
||||
if -8 <= dgr < 8 and -32 <= dg < 32 and -8 <= dgb < 8:
|
||||
data += o8(0b10000000 | (dg + 32)) # QOI_OP_LUMA
|
||||
data += o8((dgr + 8) << 4 | (dgb + 8))
|
||||
else:
|
||||
|
|
Loading…
Reference in New Issue
Block a user