mirror of
https://github.com/esphome/esphome.git
synced 2024-11-30 13:04:13 +01:00
Fix frame scaling for animated gifs (#2750)
This commit is contained in:
parent
d30e2f2a4f
commit
3178243811
@ -60,6 +60,10 @@ async def to_code(config):
|
||||
image.seek(frameIndex)
|
||||
frame = image.convert("L", dither=Image.NONE)
|
||||
pixels = list(frame.getdata())
|
||||
if len(pixels) != height * width:
|
||||
raise core.EsphomeError(
|
||||
f"Unexpected number of pixels in frame {frameIndex}: {len(pixels)} != {height*width}"
|
||||
)
|
||||
for pix in pixels:
|
||||
data[pos] = pix
|
||||
pos += 1
|
||||
@ -69,8 +73,14 @@ async def to_code(config):
|
||||
pos = 0
|
||||
for frameIndex in range(frames):
|
||||
image.seek(frameIndex)
|
||||
if CONF_RESIZE in config:
|
||||
image.thumbnail(config[CONF_RESIZE])
|
||||
frame = image.convert("RGB")
|
||||
pixels = list(frame.getdata())
|
||||
if len(pixels) != height * width:
|
||||
raise core.EsphomeError(
|
||||
f"Unexpected number of pixels in frame {frameIndex}: {len(pixels)} != {height*width}"
|
||||
)
|
||||
for pix in pixels:
|
||||
data[pos] = pix[0]
|
||||
pos += 1
|
||||
|
Loading…
Reference in New Issue
Block a user