| import io | |
| from PIL import Image | |
| from urllib.parse import urlparse | |
| import requests | |
| def is_online_file(url: str) -> bool: | |
| return urlparse(url).scheme in ["http", "https"] | |
| def steam_online_file(url: str) -> bytes: | |
| return io.BytesIO(requests.get(url, stream=True).content) | |
| def get_RGB_image(image_or_path: str | Image.Image) -> bytes: | |
| if isinstance(image_or_path, str): | |
| if is_online_file(image_or_path): # Online | |
| content = steam_online_file(image_or_path) | |
| image_or_path = Image.open(content) | |
| else: # Local | |
| image_or_path = Image.open(image_or_path) | |
| return image_or_path.convert("RGB") |