[
https://issues.apache.org/jira/browse/IMAGING-330?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gary Lucas updated IMAGING-330:
-------------------------------
Description:
I propose to enhance the PngWriter class and PngImagingParameters class to
allow the use of predictors. This change should reduce the size of output
images written in PNG format. The resulting images will carry exactly the same
data. There will be no loss of pixels or image quality. But the results will be
smaller than those currently produced by either Imaging or Java's ImageIO class.
Background
The PNG specification permits the use of optional predictors as part of its
data compression logic. Predictors are applied through the use of a filter that
transforms the data before it is passed to the conventional Deflate data
compressor. In some cases, predictors can result in a 30 percent reduction of
file size. They are particularly suited to photographic images. Although they
will work on graphics and line art, the reduction is often more modest.
You can find a description of predictors on
[Wikipedia|https://en.wikipedia.org/wiki/Portable_Network_Graphics#Filtering]
The Java ImageIO class does not apply predictors as part of its processing.
Consequently, if you write an image from a Java application using ImageIO, pull
the image into Paint, and then save it under another name, the size of the
image may actually decrease. So when this feature is added to Commons Imaging,
it will out perform ImageIO when writing PNGs.
> Implement PNG predictors to reduce output size
> ----------------------------------------------
>
> Key: IMAGING-330
> URL: https://issues.apache.org/jira/browse/IMAGING-330
> Project: Commons Imaging
> Issue Type: Improvement
> Components: Format: PNG
> Reporter: Gary Lucas
> Priority: Major
>
> I propose to enhance the PngWriter class and PngImagingParameters class to
> allow the use of predictors. This change should reduce the size of output
> images written in PNG format. The resulting images will carry exactly the
> same data. There will be no loss of pixels or image quality. But the results
> will be smaller than those currently produced by either Imaging or Java's
> ImageIO class.
> Background
> The PNG specification permits the use of optional predictors as part of its
> data compression logic. Predictors are applied through the use of a filter
> that transforms the data before it is passed to the conventional Deflate data
> compressor. In some cases, predictors can result in a 30 percent reduction
> of file size. They are particularly suited to photographic images. Although
> they will work on graphics and line art, the reduction is often more modest.
> You can find a description of predictors on
> [Wikipedia|https://en.wikipedia.org/wiki/Portable_Network_Graphics#Filtering]
> The Java ImageIO class does not apply predictors as part of its processing.
> Consequently, if you write an image from a Java application using ImageIO,
> pull the image into Paint, and then save it under another name, the size of
> the image may actually decrease. So when this feature is added to Commons
> Imaging, it will out perform ImageIO when writing PNGs.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)