view env/lib/python3.7/site-packages/galaxy/util/image_util.py @ 2:6af9afd405e9 draft

"planemo upload commit 0a63dd5f4d38a1f6944587f52a8cd79874177fc1"
author shellac
date Thu, 14 May 2020 14:56:58 -0400
parents 26e78fe6e8c4
children
line wrap: on
line source

"""Provides utilities for working with image files."""
from __future__ import absolute_import

import imghdr
import logging

try:
    import Image as PIL
except ImportError:
    try:
        from PIL import Image as PIL
    except ImportError:
        PIL = None

log = logging.getLogger(__name__)


def image_type(filename):
    fmt = None
    if PIL is not None:
        try:
            im = PIL.open(filename)
            fmt = im.format
            im.close()
        except Exception:
            # We continue to try with imghdr, so this is a rare case of an
            # exception we expect to happen frequently, so we're not logging
            pass
    if not fmt:
        fmt = imghdr.what(filename)
    if fmt:
        return fmt.upper()
    else:
        return False


def check_image_type(filename, types):
    fmt = image_type(filename)
    if fmt in types:
        return True
    return False