Skip to content

Fix black lines in dynamic render - #247

Merged
trautmane merged 2 commits into
newsolverfrom
fix/black-lines
Aug 31, 2026
Merged

Fix black lines in dynamic render#247
trautmane merged 2 commits into
newsolverfrom
fix/black-lines

Conversation

@minnerbe

Copy link
Copy Markdown
Collaborator

Dynamic rendering often shows one row of black pixels at tile boundaries, as outlined in #228. The main issue is that ImageProcessor.getPixelInterpolated has a hard cutoff at [0, width-1) x [0, height-1). Whenever a pixel is outside that interval, it's set to 0. Due to floating point errors and how pixels are treated in render, often the rightmost column / bottom row would be mapped to the interval [width-1, width) / [height-1, height), respectively, triggering the cutoff.

This PR fixes the issue by clamping the x, y values to the valid range. It also updates the tests to the new mapping, and mostly reverts changes introduced in an earlier attempt at fixing this (#223, which fixed the floating point issues, but not the larger gap due to finite pixel size). The performance cost of having the additional clamp was benchmarked to be about 5%.

Below are dynamic renderings from the same region before (left) and after (right) applying the fix. @trautmane, let me know whether you think this is sufficient. If so, this PR also closes #228.

pre fix post fix

FYI @StephanPreibisch

@minnerbe
minnerbe requested a review from trautmane August 26, 2026 17:44
@trautmane
trautmane merged commit b817a34 into newsolver Aug 31, 2026
1 of 2 checks passed
@trautmane
trautmane deleted the fix/black-lines branch August 31, 2026 00:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants