验收完成40%
This commit is contained in:
@@ -35,9 +35,11 @@ def process_chroma_image(source: Image.Image, config: dict[str, Any]) -> Image.I
|
||||
return output
|
||||
|
||||
|
||||
def process_opaque_image(source: Image.Image) -> Image.Image:
|
||||
def process_opaque_image(source: Image.Image, output_size: tuple[int, int] | None = None) -> Image.Image:
|
||||
"""Normalize a paper-backed master to deterministic opaque RGBA."""
|
||||
output = source.convert("RGBA")
|
||||
if output_size is not None and output.size != output_size:
|
||||
output = output.resize(output_size, Image.Resampling.LANCZOS)
|
||||
output.putalpha(255)
|
||||
return output
|
||||
|
||||
@@ -83,8 +85,12 @@ def build(manifest_path: Path, workspace: Path, report_path: Path) -> list[dict[
|
||||
)
|
||||
if candidate["processingMode"] == "chroma-key":
|
||||
output = process_chroma_image(opened, chroma)
|
||||
elif candidate["processingMode"] == "opaque-paper":
|
||||
output = process_opaque_image(opened)
|
||||
elif candidate["processingMode"] in {"opaque-paper", "opaque-paper-resize"}:
|
||||
output_size = None
|
||||
if candidate["processingMode"] == "opaque-paper-resize":
|
||||
target = candidate["outputPixels"]
|
||||
output_size = (target["width"], target["height"])
|
||||
output = process_opaque_image(opened, output_size)
|
||||
else:
|
||||
raise ValueError(f"unsupported processingMode: {candidate['processingMode']}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user