Add convert_to_pil_image to pil util (#31825)

* Update pil.py

* Update doods and tensorflow to use convert_to_pil_image

* Update pil.py

* Add log messages on bad data

* Drop convert_to_pil_image

Just perform conversion in the integrations without seperate convert_to_pil_image()
pull/32031/head
Robin 2020-02-20 16:50:28 +00:00 committed by GitHub
parent 7a6b13cb0d
commit a7d5e898ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 4 deletions

View File

@ -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:

View File

@ -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:
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 = (