toggle cutoff line only in quick preview
This commit is contained in:
@@ -547,15 +547,18 @@ def start_job(kind, worker, owner=None, params=None, remember_user_task=True):
|
||||
return get_job(job_id)
|
||||
|
||||
|
||||
def make_preview(input_dir, angle_degrees):
|
||||
def make_preview(input_dir, angle_degrees, show_cutoff_line=True):
|
||||
volume = load_dicom_volume(input_dir)
|
||||
before = crop_head_neck(sagittal_mip(volume))
|
||||
after = preview_deform_2d(before, float(angle_degrees))
|
||||
after = draw_cutoff_line(after, volume.shape[0])
|
||||
before_display = draw_cutoff_line(before, volume.shape[0]) if show_cutoff_line else before
|
||||
after = preview_deform_2d(before_display, float(angle_degrees))
|
||||
|
||||
canvas_image = Image.new("RGB", (1440, 520), (0, 0, 0))
|
||||
canvas_image.paste(fit_image(before_display, 700, 520), (0, 0))
|
||||
canvas_image.paste(fit_image(after, 700, 520), (740, 0))
|
||||
|
||||
canvas = BytesIO()
|
||||
preview = fit_image(after, 720, 520)
|
||||
preview.save(canvas, format="PNG")
|
||||
canvas_image.save(canvas, format="PNG")
|
||||
encoded = base64.b64encode(canvas.getvalue()).decode("ascii")
|
||||
return {
|
||||
"image": f"data:image/png;base64,{encoded}",
|
||||
@@ -721,7 +724,13 @@ class Handler(BaseHTTPRequestHandler):
|
||||
|
||||
body = self.read_json()
|
||||
if parsed.path == "/api/preview":
|
||||
self.send_json(make_preview(body["inputDir"], body.get("angleDegrees", 12)))
|
||||
self.send_json(
|
||||
make_preview(
|
||||
body["inputDir"],
|
||||
body.get("angleDegrees", 12),
|
||||
bool(body.get("showCutoffLine", True)),
|
||||
)
|
||||
)
|
||||
return
|
||||
|
||||
if parsed.path == "/api/deformation/package":
|
||||
|
||||
Reference in New Issue
Block a user