Skip to content

Image adjustments in the Engrave step: gamma, brightness, contrast, sharpen and processed-bitmap preview #515

Open

Description

@switch87

Is your feature request related to a problem? Please describe.
Portraits almost always need a small gamma, brightness or contrast correction and some sharpening before they are dithered or engraved in grayscale. The Engrave step has Auto Levels, the black/white points and Invert, but nothing else, so every photo makes a round trip through an image editor, and you only see the effect of the processing in the generated ops.

Describe the solution you'd like

  • New Engrave-step settings, next to the existing levels: Gamma, Brightness, Contrast and Sharpen (unsharp mask with amount and radius in mm, so it scales with the line interval).
  • Applied after the levels and before the dither or the grayscale-to-power mapping, for the Dither, Variable Power and Multiple Depths modes. Transparent pixels stay untouched; the defaults are a no-op, so existing documents engrave exactly as before.
  • Covered by the step's cache params and recipes, like the other preprocessing settings.
  • A preview of the processed bitmap in the step settings (the image the assembler will actually see), plus an option to save it as PNG for checking or for reuse elsewhere.

Describe alternatives you've considered
Editing the photo beforehand in GIMP/darktable works but it detaches the adjustment from the job, and the result can't be judged against the real line interval and dither.

Additional context
I'm working on this. It touches the same preprocessing code as #514, so I'll build it on top of that branch.

Activity

  1. knipknap commented on Oct 9, 2026

    @knipknap
    Contributor

    Thanks for the proposal. You're right that portraits almost always need a small amount of gamma/brightness/contrast correction plus sharpening, and that doing this in the step (rather than in GIMP beforehand) keeps the adjustment tied to the job and judgeable against the real line interval and dither.

    The ordering you propose is correct: after the existing levels and before the dither or grayscale-to-power mapping, with transparent pixels untouched and no-op defaults so every existing document engraves byte-identically. Being covered by the cache parameters is important so results stay reproducible, and the processed-bitmap preview is arguably the most valuable part — seeing exactly what the assembler will receive beats guessing from a photo editor.

    Making the sharpen radius in millimetres (so it scales with the line interval) rather than in pixels is the right call for a tool where physical output size is what matters.

    Building on the #514 branch makes sense since they touch the same preprocessing code. Please go ahead — happy to review.

  2. added
    rca-doneA root cause analysis was attached
    and removed on Oct 9, 2026
  3. switch87 commented on Oct 13, 2026

    @switch87
    ContributorAuthor

    Status: #535 now carries this as the tone and sharpen image edits (Tools > Adjust Image), on top of the image edit registry from #552, with the sharpen radius in mm. As agreed in #535, the separate processed-bitmap preview is dropped, since the on-canvas editing already shows the result. Levels as an edit will follow as its own PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    rca-doneA root cause analysis was attached

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions