进一步优化save_result(提取函数)
This commit is contained in:
38
app/export/image_exporter.py
Normal file
38
app/export/image_exporter.py
Normal file
@@ -0,0 +1,38 @@
|
||||
"""测试结果图表 PNG 导出。"""
|
||||
import os
|
||||
|
||||
|
||||
# (item_key, fig_attr, filename, allowed_test_types_or_None, default_bbox_inches_auto)
|
||||
IMAGE_SPECS = [
|
||||
("gamut", "gamut_fig", "色域测试结果.png", None, True),
|
||||
("gamma", "gamma_fig", "Gamma曲线测试结果.png",
|
||||
{"screen_module", "sdr_movie"}, True),
|
||||
("eotf", "eotf_fig", "EOTF曲线测试结果.png", {"hdr_movie"}, True),
|
||||
("cct", "cct_fig", "色度一致性测试结果.png", None, True),
|
||||
("contrast", "contrast_fig", "对比度测试结果.png", None, False),
|
||||
("accuracy", "accuracy_fig", "色准测试结果.png",
|
||||
{"sdr_movie", "hdr_movie"}, True),
|
||||
]
|
||||
|
||||
|
||||
def save_result_images(result_dir, current_test_type, selected_items,
|
||||
figure_provider, log):
|
||||
"""根据测试类型和已选项将各测试图表保存为 PNG。
|
||||
|
||||
figure_provider: callable(attr_name) -> matplotlib Figure 或 None
|
||||
log: callable(msg)
|
||||
"""
|
||||
for item_key, fig_attr, filename, allowed_types, default_bbox in IMAGE_SPECS:
|
||||
if item_key not in selected_items:
|
||||
continue
|
||||
if allowed_types is not None and current_test_type not in allowed_types:
|
||||
continue
|
||||
fig = figure_provider(fig_attr)
|
||||
if fig is None:
|
||||
continue
|
||||
path = os.path.join(result_dir, filename)
|
||||
if default_bbox:
|
||||
fig.savefig(path, dpi=300)
|
||||
else:
|
||||
fig.savefig(path, dpi=300, bbox_inches="tight")
|
||||
log(f"✓ 已保存: {filename}")
|
||||
Reference in New Issue
Block a user