Refine estimate of bytes needed to write a TIFF plane#4395
Open
melissalinkert wants to merge 2 commits intoome:developfrom
Open
Refine estimate of bytes needed to write a TIFF plane#4395melissalinkert wants to merge 2 commits intoome:developfrom
melissalinkert wants to merge 2 commits intoome:developfrom
Conversation
Fixes ome#4113. Instead of just doubling the number of pixel bytes, estimate the number of bytes needed to write the corresponding IFD. As a consequence, this adds methods to get the number of bytes needed to write an IFD and the IFDType for a particular value.
Boolean values aren't written to IFDs, but are often included for keeping track of things like whether the IFD should be written using BigTIFF.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #4113.
Instead of just doubling the number of pixel bytes, estimate the number of bytes needed to write the corresponding IFD. As a consequence, this adds methods to get the number of bytes needed to write an IFD and the IFDType for a particular value.
The test case in #4113 should now successfully convert without exception:
bfconvert "test&sizeX=12000&sizeY=20000&sizeZ=8&sizeT=2.fake" test.tiffand the resulting file should be less than 4GB and readable as expected. Increasing the plane count in the test case should continue to throw an exception indicating that BigTIFF is required (but this is expected).
Given that this adds some new API to the TIFF classes and 8.4.0 is rapidly approaching, I'd be OK with pushing this PR to the next milestone if more time to review/discuss would be helpful.