Skip to content

No Tiff support. #12

Description

@JimBobSquarePants

From @JimBobSquarePants on August 31, 2016 1:49

We should be able to support TIFF

Useful links.

http://partners.adobe.com/public/developer/tiff/index.html

http://www.remotesensing.org/libtiff/

http://www.awaresystems.be/imaging/tiff.html

Current implementation can be found in the tiff-codec branch.

Feature Checklist

  • Reading TIFF file structure
  • Parsing of relevant metadata
  • Extraction of image data blocks
  • Construction of image (from strip data)
  • Construction of image (from tile data)

Compression Types

  • None
  • Ccitt1D
  • PackBits
  • CcittGroup3Fax
  • CcittGroup4Fax
  • Lzw
  • Old Jpeg
  • Jpeg (Technote 2)
  • Deflate (Technote 2)
  • Old Deflate (Technote 2)

Photometric Interpretation Formats

  • WhiteIsZero
  • BlackIsZero
  • Rgb (Chunky)
  • Rgb (Planar)
  • PaletteColor
  • TransparencyMask
  • Separated (TIFF Extension color spaces)
  • YCbCr (TIFF Extension color spaces)
  • CieLab (TIFF Extension color spaces)
  • IccLab (TechNote 1)

Activity

  1. JimBobSquarePants commented on Oct 30, 2016

    @JimBobSquarePants
    MemberAuthor

    From @kierenj on September 7, 2016 20:27

    I realise how unhelpful this comment right here is, but TIFF decoding across the board can be really tricky to get right - there are loads of compression formats, and even fairly respected tools (from MS / Atalasoft) get it wrong even with 1-bit images. I think some archiving formats even require special licensing to implement correctly. It might be worth identifying a small subset of formats to support!

  2. JimBobSquarePants commented on Oct 30, 2016

    @JimBobSquarePants
    MemberAuthor

    @kierenj It's certainly not an unhelpful comment. Tiff would be hard and I'm sorely tempted to let someone else figure it out and concentrate on what we have already. I'm just dreading the day someone tells me that the library is useless without it. There's always someone!

  3. ChrisVanDijk commented on Feb 22, 2017

    @ChrisVanDijk

    I needed to import Tiff files so I created a temporary Tiff encoder and decoder based on LibTiff.Net.

  4. JimBobSquarePants commented on Feb 22, 2017

    @JimBobSquarePants
    MemberAuthor

    @ChrisVanDijk Good effort but have you benchmarked that codec? The Bitmiracle jpeg codec was about 10x slower and used 190MB more to process a small test image compared to our codec. I imagine the Tiff one will be the same. I'd be careful using it.

    @Andy-Wilkinson you have been playing around with Tiff haven't you with your own stuff? I wonder if we can use some of it?

  5. ChrisVanDijk commented on Feb 22, 2017

    @ChrisVanDijk

    @JimBobSquarePants The code and performance is bad, but I really needed the ability to open Tiff files. It's a temporary solution until a better one.

  6. JimBobSquarePants commented on Feb 22, 2017

    @JimBobSquarePants
    MemberAuthor

    @ChrisVanDijk understandable. Tiff is a complex format so I'm pushing it to the backburner until I can get everything else out of the way... Not looking forward to tackling it!

  7. antonfirsov commented on Feb 22, 2017

    @antonfirsov
    Member

    @ChrisVanDijk @JimBobSquarePants One big "advantage" of these naive C ports is that its really not that hard to make the first steps towards speeding & cleaning them up.
    Someone with time & a profiler could check it, and estimate the efforts needed reuse/refactor elements of that code.

  8. Andy-Wilkinson commented on Feb 22, 2017

    @Andy-Wilkinson
    Contributor

    @JimBobSquarePants I've got the basics of reading the Tiff format itself working from my own project (I started here since many Camera Raw files are mutant Tiff files). As you mention, there are a number of compression formats, but the key ones probably aren't too much trouble. The one issue with my existing codebase is that it was a bit of an experiment in a more functional style of C#, rather than how you might structure it normally.

    All that said, I know a fair amount about the Tiff format now, so probably would be able to make a quick start on a true ImageSharp Tiff codec pretty easily (and share a bit of the code where I can). Would you be interested in me picking up this issue and giving it a start? (especially since you guys seem to be busy enough with the existing codec perf 😄)

  9. JimBobSquarePants commented on Feb 22, 2017

    @JimBobSquarePants
    MemberAuthor

    @antonfirsov I've found with those ports though there's about a million lines more code than I'd like to read nested in there.

    @Andy-Wilkinson That would be absolutely brilliant if you could! 💯

  10. 68 remaining items

  11. added 5 commits that reference this issue on Feb 17, 2021
  12. linked a pull request that will close this issueAdd Tiff Format Support #1553on Feb 17, 2021
  13. modified the milestones: Future, on Mar 15, 2021
  14. brianpopow commented on May 25, 2021

    @brianpopow
    Collaborator

    I am happy to announce that we have now support for decoding and encoding Tiff images with #1553 merged to the master branch.

    You can try it out with our nightly build from our myget feed

    For now this feature has to be activated manually by the user, which can be done in several different ways:

    1. Add Tiff to the Default Configuration:
    Configuration.Default.AddTiff();
    
    1. Or to your specific configuration:
    Configuration config = new Configuration();
    config.AddTiff();
    
    1. Provide the Tiff Decoder / Encoder explicit when loading or saving a image:
    using var image = Image.Load(@"image.tiff", new TiffDecoder());
    
  15. JimBobSquarePants commented on May 25, 2021

    @JimBobSquarePants
    MemberAuthor

    @brianpopow let’s make that automatic. 🙂

  16. brianpopow commented on May 26, 2021

    @brianpopow
    Collaborator

    @brianpopow let’s make that automatic. 🙂

    With #1634 merged, the Tiff format is now added to the default Configuration.

  17. cocosip commented on Dec 31, 2021

    @cocosip

    Hi, i try to read a tiff image, but it throw Tiled images are not supported.
    Any plan to support Construction of image (from tile data) ?
    Thank you!

  18. JimBobSquarePants commented on Jan 4, 2022

    @JimBobSquarePants
    MemberAuthor

    No plans currently. That would require community support to implement.

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions