def decode_image_with_pil(encoded_image: torch.Tensor) -> torch.Tensor: image = torch.as_tensor( np.array(PIL.Image.open(ReadOnlyTensorBuffer(encoded_image)), copy=True)) if image.ndim == 2: image = image.unsqueeze(2) return image.permute(2, 0, 1)
def decode_video_with_av( encoded_video: torch.Tensor ) -> Tuple[torch.Tensor, torch.Tensor, Dict[str, Any]]: with unittest.mock.patch("torchvision.io.video.os.path.exists", return_value=True): return read_video( ReadOnlyTensorBuffer(encoded_video)) # type: ignore[arg-type]
def image_size(self) -> Tuple[int, int]: if not hasattr(self, "_image_size"): with PIL.Image.open(ReadOnlyTensorBuffer(self)) as image: self._image_size = image.height, image.width return self._image_size