ImageIO

描述

对一组文件应用一系列图像操作。

使用 AWT 和 ImageIO;替换 Java 9+ 的 image 任务。该任务也可以与 Java 8 一起使用,有关限制,请参见参数表。

注意:此任务尝试尽可能地保持与 image 任务的语法和语义一致。但是,它使用 format 属性而不是 encoding 属性,因为后者是一个误称:几乎所有任务都使用类似的属性来表示文件、文件名或其他字符串中的字符编码。此外,当未指定 format 时,其值由第一个处理的图像文件的格式定义。

使用的数据类型的概述
ImageOperation class diagram A diagram of Ant DataType classes used by ImageIO task. org.apache.tools.ant.types.DataType ImageOperation instructions : List addDraw(Draw : instr) addRotate(Rotate : 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 height : int = 0 width : int = 0 strokeWidth : int = 0 stroke : String = "black" fill : String = "transparent" TransformOperation executeTransformOperation(BufferedImage img) : BufferedImage <<interface>> DrawOperation executeDrawOperation() : BufferedImage 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 addText(Text : text) addRectangle(Rectangle rect) addEllipse(Ellipse elip) addArc(Arc arc) Rectangle archeight : int = 0 arcwidth : int = 0 Ellipse Arc start : int = 0 stop : int = 0 type : enumerated = open

参数

属性 描述 必需
failonerror 布尔值。如果为 false,则将错误记录到输出,但继续执行。 否;默认为 true
srcdir 包含图像的目录。 是,除非使用嵌套的 fileset
format 图像格式。
有效(不区分大小写)的格式为:bmpgifjpegjpgpngtiftiffwbmp(Java 8 VM 缺少对 TIFF 的支持,这可以通过 外部库 提供)。
否;默认为(第一个)原始文件的格式
overwrite 布尔值。设置是否覆盖存在命名冲突的文件。 否;默认为 false
gc 布尔值。在处理完每个图像后启用垃圾回收。 否;默认为 false
destdir 存储结果图像的目录。 否;默认为 srcdir 的值
includes 必须包含的文件模式的逗号或空格分隔列表。 否;默认为所有 (**)
includesfile 文件名称。此文件的每一行都被视为一个包含模式
excludes 必须排除的文件模式的逗号或空格分隔列表。 否;默认为默认排除项,或者如果 defaultexcludesno 则为无
excludesfile 文件名称。此文件的每一行都被视为一个排除模式
defaultexcludes 指示是否使用默认排除项 (yes|no)。 否;默认为 yes
caseSensitive 布尔值。设置文件系统的区分大小写。 否;默认为 false
followSymlinks 布尔值。设置是否应遵循符号链接。 否;默认为 true

作为嵌套元素指定的参数

此任务形成一个隐式的 FileSet,并支持 <fileset> 的大多数属性以及嵌套的 <include><exclude><patternset> 元素。

以下 ImageOperation 对象可以作为嵌套元素指定:RotateScaleDraw

Rotate

向链中添加 Rotate ImageOperation。

参数
属性 描述 必需
angle 浮点值。设置以度为单位的旋转角度。 否;默认为 0.0F

Scale

向链中添加 Scale ImageOperation。

参数
属性 描述 必需
proportions 设置控制比例的维度。有效值为
  • ignore—独立地处理维度。
  • height—根据宽度保持比例。
  • width—根据高度保持比例。
  • cover—保持比例并在提供的维度内拟合。
  • fit—保持比例并覆盖提供的维度。
否;默认为 ignore
width 设置图像的宽度,可以是整数(像素)或 %。 否;默认为 100%
height 设置图像的高度,可以是整数(像素)或 %。 否;默认为 100%

Draw

向链中添加 Draw ImageOperation。DrawOperation DataType 对象可以嵌套在 Draw 对象中。

参数
属性 描述 必需
xloc 绘制嵌套图像元素的 X 位置。 否;默认为 0
yloc 绘制嵌套图像元素的 Y 位置。 否;默认为 0
嵌套元素

Text 和 BasicShape 对象都可以嵌套。当前支持的 BasicShape 对象为 Arc、Ellipse 和 Rectangle。

BasicShape 对象的通用参数
属性 描述 必需
height BasicShape 的高度。 否;默认为 0
width BasicShape 的宽度。 否;默认为 0
strokewidth BasicShape 的描边宽度。 否;默认为 0
color BasicShape 的颜色。 否;默认为 black
fill BasicShape 的填充。 否;默认为 transparent
Arc 对象的特定参数
属性 描述 必需
start 以度为单位的圆弧的起始角度。 否;默认为 0
stop 以度为单位的圆弧的角度范围。 否;默认为 0
type 以下之一:chordopenpie 否;默认为 open
Ellipse 对象的特定参数

无。

Rectangle 对象的特定参数
属性 描述 必需
archeight 矩形角处的圆弧的垂直直径。 否;默认为 0
arcwidth 矩形角处的圆弧的水平直径。 否;默认为 0
Text 的参数
属性 描述 必需
string 文本字符串。 否;默认为
font 设置文本的字体。 否;默认为 Arial
point 以磅为单位的字体大小。 否;默认为 10
bold 字体是否为粗体。 否;默认为 false
color 文本的颜色。 否;默认为 black
italic 字体是否为斜体。 否;默认为 false

mapper

您可以使用嵌套的 mapper 元素来定义文件名转换。<image> 使用的默认映射器是 identity 映射器

您也可以使用 filenamemapper 类型来代替 mapper 元素。

示例

创建我的图像的缩略图,并确保它们都适合 160×160 像素的大小,无论图像为纵向还是横向。

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

src 中的所有 PNG 文件创建大小为 40 像素的缩略图,保持比例,并将结果存储在 src 中。

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

与上面相同,但将结果存储在 dest 中。

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

与上面相同,但将结果存储到以 scaled- 为前缀的原始名称的文件中。

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