Convert a torch image tensor to base64. Args: image_tensor: torch.Tensor, shape (C, H, W) image_format: Image format. Returns: Base64-encoded image.
(image_tensor, image_format)
| 233 | |
| 234 | |
| 235 | def image_tensor_to_base64(image_tensor, image_format): |
| 236 | """Convert a torch image tensor to base64. |
| 237 | |
| 238 | Args: |
| 239 | image_tensor: torch.Tensor, shape (C, H, W) |
| 240 | image_format: Image format. |
| 241 | |
| 242 | Returns: |
| 243 | Base64-encoded image. |
| 244 | """ |
| 245 | |
| 246 | if image_tensor.shape[0] != 3: |
| 247 | raise ValueError("Input tensor is not a 3-channel image.") |
| 248 | image_array = image_tensor.permute(1, 2, 0).numpy() |
| 249 | image_array = image_array.astype(np.uint8) |
| 250 | image = Image.fromarray(image_array) |
| 251 | buffered = BytesIO() |
| 252 | image.save(buffered, format=image_format) |
| 253 | img_str = base64.b64encode(buffered.getvalue()).decode("utf-8") |
| 254 | return img_str |
| 255 | |
| 256 | |
| 257 | # ----------------------------------------------------------------------------- |