[ 
https://issues.apache.org/jira/browse/IMAGING-94?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gary Lucas updated IMAGING-94:
------------------------------

    Attachment: LucasTrackerItem94_Oct24.patch

This 24 October patch uses the System.arraycopy method as recommended by 
Damjan.  I have tested it several ways and believe that it is ready for 
incorporation into the code tree.
                
> Add ability to load partial TIFF images
> ---------------------------------------
>
>                 Key: IMAGING-94
>                 URL: https://issues.apache.org/jira/browse/IMAGING-94
>             Project: Commons Imaging
>          Issue Type: New Feature
>          Components: Format: TIFF
>            Reporter: Gary Lucas
>         Attachments: LucasTrackerItem94_Oct14.patch, 
> LucasTrackerItem94_Oct24.patch
>
>
> For most Apache Commons Imaging applications, the easiest way to obtain a sub 
> image from a file is to simply use the Imaging class to load it as a 
> BufferedImage and then use BufferedImage’s getSubimage() method to extract 
> the portion of the image you wish to use.  The TIFF format presents a special 
> problem because it is very common to have huge images (100’s or even 1000’s 
> of megapixel).  Examples include Landsat satellite images, global-scale 
> GeoTIFF images, etc.  In such cases, loading the entire image into memory is 
> not practical because it would require too much memory.  For example, I am 
> currently working with a 21600 by 10800 image that requires more than 890 
> megabytes to store as a BufferedImage.  That value is pushing the limit of 
> what I can configure Java to handle on my particular OS.
> I propose to implement features for TIFF files that would permit Commons 
> Imaging to load a partial image of a TIFF file using only the amount memory 
> actually needed to hold the sub-image.
> These changes would not interfere with normal operations of TIFF files and 
> would not affect other image formats.  If there were a need for similar 
> features for other image formats, they could be phased in through future 
> changes.
> The specification for a sub-image would be through the use of the params 
> argument in the getBufferedImage call as follows:
>         HashMap<String, Object> params = new HashMap<String, Object>();
>         params.put(TiffConstants.PARAM_KEY_SUBIMAGE_X, new Integer( x ));
>         params.put(TiffConstants.PARAM_KEY_SUBIMAGE_Y, new Integer( y ));
>         params.put(TiffConstants.PARAM_KEY_SUBIMAGE_WIDTH, new 
> Integer(width));
>         params.put(TiffConstants.PARAM_KEY_SUBIMAGE_HEIGHT, new 
> Integer(height));

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to