Warning
This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
Source code for galaxy.util.image_util
"""Provides utilities for working with image files."""
import imghdr
import logging
from typing import (
List,
Optional,
)
try:
from PIL import Image
except ImportError:
Image = None # type: ignore[assignment]
log = logging.getLogger(__name__)
[docs]def image_type(filename: str) -> Optional[str]:
fmt = None
if Image is not None:
try:
with Image.open(filename) as im:
fmt = im.format
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 None
[docs]def check_image_type(filename: str, types: List[str]) -> bool:
fmt = image_type(filename)
if fmt in types:
return True
return False