Image

Deprecated

This task has been deprecated, because Java Advanced Image API depends on internal classes which were removed in Java 9. Use the ImageIO task instead.

Description

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

Requires Java Advanced Image API from Sun.

Overview of used datatypes
ImageOperation class diagram A diagram of Ant DataType classes used by Image task. org.apache.tools.ant.types.DataType ImageOperation instructions : Vector addRotate(Rotate : instr) addDraw(Draw : instr) addText(Text : instr) addScale(Scale : instr) The setType() method forces type to one of the values of java.awt.geom.Arc2D: open = Arc2D.OPEN pie = Arc2D.PIE chord = Arc2D.CHORD Parameter is not case-sensitive. BasicShape stroke_width : int = 0 fill : String = "transparent" stroke : String = "black" TransformOperation executeTransformOperation(PlanarImage img) : PlanarImage addRectangle(Rectangle instr) <<interface>> DrawOperation executeDrawOperation() : PlanarImage The implementing class uses ColorMapper to evaluate the color. Only the values defined in ColorMapper are used. ColorMapper COLOR_BLACK : String = "black" COLOR_BLUE : String = "blue" COLOR_CYAN : String = "cyan" COLOR_DARKGRAY : String = "darkgray" COLOR_GRAY : String = "gray" COLOR_LIGHTGRAY : String = "lightgray" COLOR_DARKGREY : String = "darkgrey" COLOR_GREY : String = "grey" COLOR_LIGHTGREY : String = "lightgrey" COLOR_GREEN : String = "green" COLOR_MAGENTA : String = "magenta" COLOR_ORANGE : String = "orange" COLOR_PINK : String = "pink" COLOR_RED : String = "red" COLOR_WHITE : String = "white" COLOR_YELLOW : String = "yellow" Text string : String = "" font : String = "Arial" point : int = 10 bold : boolean = false color : String = "black" italic : boolean = false Rotate angle : float = 0.0F Scale width : String = "100%" height : String = "100%" keepProportions : boolean = false Draw xloc : int = 0 yloc : int = 0 addEllipse(Ellipse elip) addArc(Arc arc) Rectangle height : int = 0 width : int = 0 archeight : int = 0 arcwidth : int = 0 Ellipse height : int = 0 width : int = 0 Arc height : int = 0 width : int = 0 start : int = 0 stop : int = 0 type : enumerated = open

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 (case insensitive) 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. No; defaults to all (**)
includesfile 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; defaults to default excludes or none if defaultexcludes is no
excludesfile 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). No; defaults to yes
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.

The following ImageOperation objects can be specified as nested elements: Rotate, Scale and Draw.

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 (pixels) or a %. No; defaults to 100%
height Sets the height of the image, either as an integer (pixels) 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

For description of nested elements, please see the documentation of ImageIO task.

mapper

Since Apache 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

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

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

Create a thumbnail for all PNG files in src of the size of 40 pixels keeping the proportions and store the src.

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

Same as above but store the result in dest.

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

Same as above but store the result to files with original names prefixed by scaled-.

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