Java 图片处理类库 SimpleImage
本文导语: SimpleImage是阿里巴巴的一个Java图片处理的类库,可以实现图片缩略、水印等处理。 SimpleImage中的ImageRender是图片处理的基类,它是一个抽象类,我们看到,该类中定义了一个抽象方法render(),同时持有一个对ImageRender类的引用。 ...
SimpleImage是阿里巴巴的一个Java图片处理的类库,可以实现图片缩略、水印等处理。
SimpleImage中的ImageRender是图片处理的基类,它是一个抽象类,我们看到,该类中定义了一个抽象方法render(),同时持有一个对ImageRender类的引用。
ReadRedner可以理解成一个组件,不是一个装饰者,因为ReadRender是所有渲染操作的第一步。
其他的子类DrawTextRender(水印处理),ScaleRender(缩略处理),WriterRender(输出)都是装饰者。
拿ScaleRender为例子,看一下它的render()类的实现。红色区域的内容,是上一层包装的实现调方法render()的调用,之后的操作是ScaleRender需要关注的图片缩略处理。
客户端的调用如下所示。ReadRender需要引入一个输入流,ScaleRender包裹ReadRender,WriteRender包裹ScaleRender,最后调用最外层的render()方法,处理图像处理,层层进入,
首先ReadRender读取图片数据,ScaleRender进行图片缩略,WriteReneder将处理之后的图片数据写入输出流中,完成一系列操作。