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)