[
https://issues.apache.org/jira/browse/IMAGING-366?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marcono1234 updated IMAGING-366:
--------------------------------
Description:
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}}?
If the relation between {{ImageParser}} and {{ImageFormat}} is 1:N, what about
adding a method {{ImageFormat.getParser(): 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).
was:
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).
> Publicly expose Util.getImageParser / Allow easily getting ImageParser for
> ImageFormat
> --------------------------------------------------------------------------------------
>
> 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
> Priority: Minor
>
> 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}}?
> If the relation between {{ImageParser}} and {{ImageFormat}} is 1:N, what
> about adding a method {{ImageFormat.getParser(): 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)