diff --git a/homeassistant/components/doods/image_processing.py b/homeassistant/components/doods/image_processing.py index 65a32938140..4130f67ec13 100644 --- a/homeassistant/components/doods/image_processing.py +++ b/homeassistant/components/doods/image_processing.py @@ -3,7 +3,7 @@ import io import logging import time -from PIL import Image, ImageDraw +from PIL import Image, ImageDraw, UnidentifiedImageError from pydoods import PyDOODS import voluptuous as vol @@ -274,7 +274,11 @@ class Doods(ImageProcessingEntity): def process_image(self, image): """Process the image.""" - img = Image.open(io.BytesIO(bytearray(image))) + try: + img = Image.open(io.BytesIO(bytearray(image))).convert("RGB") + except UnidentifiedImageError: + _LOGGER.warning("Unable to process image, bad data") + return img_width, img_height = img.size if self._aspect and abs((img_width / img_height) - self._aspect) > 0.1: diff --git a/homeassistant/components/tensorflow/image_processing.py b/homeassistant/components/tensorflow/image_processing.py index dee2a021829..26cf0fed5e8 100644 --- a/homeassistant/components/tensorflow/image_processing.py +++ b/homeassistant/components/tensorflow/image_processing.py @@ -4,7 +4,7 @@ import logging import os import sys -from PIL import Image, ImageDraw +from PIL import Image, ImageDraw, UnidentifiedImageError import numpy as np import voluptuous as vol @@ -287,7 +287,11 @@ class TensorFlowImageProcessor(ImageProcessingEntity): inp = img[:, :, [2, 1, 0]] # BGR->RGB inp_expanded = inp.reshape(1, inp.shape[0], inp.shape[1], 3) except ImportError: - img = Image.open(io.BytesIO(bytearray(image))).convert("RGB") + try: + img = Image.open(io.BytesIO(bytearray(image))).convert("RGB") + except UnidentifiedImageError: + _LOGGER.warning("Unable to process image, bad data") + return img.thumbnail((460, 460), Image.ANTIALIAS) img_width, img_height = img.size inp = (