保存图片到本地,同时生成缩略图 Args: image_data: 图片二进制数据 filename: 文件名 task_dir: 任务目录(如果为None则使用当前任务目录) Returns: 保存的文件路径
(self, image_data: bytes, filename: str, task_dir: str = None)
| 104 | return f.read() |
| 105 | |
| 106 | def _save_image(self, image_data: bytes, filename: str, task_dir: str = None) -> str: |
| 107 | """ |
| 108 | 保存图片到本地,同时生成缩略图 |
| 109 | |
| 110 | Args: |
| 111 | image_data: 图片二进制数据 |
| 112 | filename: 文件名 |
| 113 | task_dir: 任务目录(如果为None则使用当前任务目录) |
| 114 | |
| 115 | Returns: |
| 116 | 保存的文件路径 |
| 117 | """ |
| 118 | if task_dir is None: |
| 119 | task_dir = self.current_task_dir |
| 120 | |
| 121 | if task_dir is None: |
| 122 | raise ValueError("任务目录未设置") |
| 123 | |
| 124 | # 保存原图 |
| 125 | filepath = os.path.join(task_dir, filename) |
| 126 | with open(filepath, "wb") as f: |
| 127 | f.write(image_data) |
| 128 | |
| 129 | # 生成缩略图(50KB左右) |
| 130 | thumbnail_data = compress_image(image_data, max_size_kb=50) |
| 131 | thumbnail_filename = f"thumb_{filename}" |
| 132 | thumbnail_path = os.path.join(task_dir, thumbnail_filename) |
| 133 | with open(thumbnail_path, "wb") as f: |
| 134 | f.write(thumbnail_data) |
| 135 | |
| 136 | return filepath |
| 137 | |
| 138 | def _generate_single_image( |
| 139 | self, |
no test coverage detected