Image Task

## Image

### Description

Applies a chain of image operations on a set of files.

Requires Java Advanced Image API from Sun.

##### Overview of used datatypes

### Parameters

Attribute | Description | Required
failonerror | Boolean value. If false, note errors to the output but keep going. | no (defaults to true)
srcdir | Directory containing the images. | yes, unless nested fileset is used
encoding | Image encoding type. Valid (caseinsensitive) are: jpg, jpeg, tif, tiff | no (defaults to JPEG)
overwrite | Boolean value. Sets whether or not to overwrite a file if there is naming conflict. | no (defaults to false)
gc | Boolean value. Enables garbage collection after each image processed. | no (defaults to false)
destdir | Directory where the result images are stored. | no (defaults to value of srcdir)
includes | comma- or space-separated list of patterns of files that must be included. All files are included when omitted. | No
includesfile | the name of a file. Each line of this file is taken to be an include pattern | No
excludes | comma- or space-separated list of patterns of files that must be excluded. No files (except default excludes) are excluded when omitted. | No
excludesfile | the name of a file. Each line of this file is taken to be an exclude pattern | No
defaultexcludes | indicates whether default excludes should be used or not ("yes"/"no"). Default excludes are used when omitted. | No
caseSensitive | Boolean value. Sets case sensitivity of the file system. | no (defaults to false)
followSymlinks | Boolean value. Sets whether or not symbolic links should be followed. | no (defaults to true)

### Parameters specified as nested elements

This task forms an implicit FileSet and supports most attributes of `<fileset>` as well as the nested `<include>`, `<exclude>` and `<patternset>` elements.

#### ImageOperation

Adds an ImageOperation to chain.

##### Nested Elements

ImageOperation can handle nested Rotate, Draw, Rectangle, Text and Scale objects.

#### Rotate

Adds a Rotate ImageOperation to chain.

##### Parameters

Attribute | Description | Required
angle | Float value. Sets the angle of rotation in degrees. | no (defaults to 0.0F)

#### Scale

Adds a Scale ImageOperation to chain.

##### Parameters

Attribute | Description | Required

proportions

Sets which dimension to control proportions from. Valid values are:

- "ignore" - treat the dimensions independently.
- "height" - keep proportions based on the width.
- "width" - keep proportions based on the height.
- "cover" - keep proportions and fit in the supplied dimensions.
- "fit" - keep proportions and cover the supplied dimensions.

no (defaults to ignore)

width | Sets the width of the image, either as an integer or a %. | no (defaults to 100%)
height | Sets the height of the image, either as an integer or a %. | no (defaults to 100%)

#### Draw

Adds a Draw ImageOperation to chain. DrawOperation DataType objects can be nested inside the Draw object.

##### Parameters

Attribute | Description | Required
xloc | X-Position where to draw nested image elements. | no (defaults to 0)
yloc | Y-Position where to draw nested image elements. | no (defaults to 0)

#### mapper

Since Ant 1.8.0

You can define filename transformations by using a nested mapper element. The default mapper used by `<image>` is the identity mapper.

You can also use a filenamemapper type in place of the mapper element.

### Examples

>      <image destdir="samples/low" overwrite="yes">
>          <fileset dir="samples/full">
>              <include name="**/*.jpg"/>
>          </fileset>
>          <scale width="160" height="160" proportions="fit"/>
>      </image>

Create thumbnails of my images and make sure they all fit within the 160x160 size whether the image is portrait or landscape.

>     <image srcdir="src" includes="*.png">
>         <scale proportions="width" width="40"/>
>     </image>

Creates a thumbnail for all PNG-files in src in the size of 40 pixel keeping the proportions and stores the src.

>     <image srcdir="src" destdir="dest" includes="*.png">
>         <scale proportions="width" width="40"/>
>     </image>

Same as above but stores the result in dest.

>     <image srcdir="src" destdir="dest" includes="*.png">
>         <scale proportions="width" width="40"/>
>         <globmapper from="*" to="scaled-*"/>
>     </image>

Same as above but stores the resulting file names will be prefixed by "scaled-".