Spaces:
Paused
Paused
# Copyright (c) Meta Platforms, Inc. and affiliates. | |
# All rights reserved. | |
# | |
# This source code is licensed under the license found in the | |
# LICENSE file in the root directory of this source tree. | |
from io import BytesIO | |
from typing import Any | |
from PIL import Image | |
class Decoder: | |
def decode(self) -> Any: | |
raise NotImplementedError | |
class ImageDataDecoder(Decoder): | |
def __init__(self, image_data: bytes) -> None: | |
self._image_data = image_data | |
def decode(self) -> Image: | |
f = BytesIO(self._image_data) | |
return Image.open(f).convert(mode="RGB") | |
class TargetDecoder(Decoder): | |
def __init__(self, target: Any): | |
self._target = target | |
def decode(self) -> Any: | |
return self._target | |