Marcono1234 created IMAGING-366:
-----------------------------------

             Summary: Publicly expose Util.getImageParser
                 Key: IMAGING-366
                 URL: https://issues.apache.org/jira/browse/IMAGING-366
             Project: Commons Imaging
          Issue Type: Improvement
    Affects Versions: 1.0-alpha3
            Reporter: Marcono1234


h3. Suggestion
The internal class {{org.apache.commons.imaging.internal.Util}} contains the 
method {{getImageParser}} for obtaining a parser from binary data of unknown 
format.

What do you think about exposing some variant of this {{getImageParser}} method 
publicly, for example in the {{Imaging}} class?

Or in general making it easier to obtain for unknown binary data first the 
{{ImageFormat}} and then based on that the {{ImageParser}}?

h3. Use case
A situation where this can be useful is if you have binary data of an image of 
unknown format, and you want to obtain metadata from it (therefore having to 
use {{ImageParser}}). But you only want to support certain image formats such 
as JPEG and PNG, and not all image formats Commons Imaging supports.
In that case having first the {{ImageParser}} would allow you to check its type 
(e.g. if it is {{PngImageParser}}) before calling any of its methods.

h3. Workaround
A workaround might be to first use {{Imaging.guessFormat}}, then check if you 
want to support the format, and afterwards call one of the other {{Imaging}} 
methods which internally delegate to {{ImageParser}}, such as 
{{Imaging.getMetadata}}.
However, this feels a bit brittle because you have to make two separate calls 
to {{Imaging}}, and have to trust that the second call determines the format in 
the same way {{guessFormat}} does (which should probably be always the case).




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to