图片处理服务是一个基础服务,以接口的方式提供服务,可对图片进行处理。

图片处理是指:缩略图、裁剪、旋转、加文字水印、加图片水印等等操作。

在线实时图片处理是指:当用户第一次访问一张图片的小图时,可从原图实时生成一张小图,返回给用户。图片URL中带有图片处理规则。

图片处理引擎:java图片处理引擎、ImageMagick图片处理引擎

com.sicheng.upload.thumbnail.ImageProcess 是图片处理接口

/**
 * Copyright (C) 2016-Now 思程科技 All rights reserved.
 * 思程科技(北京)有限公司对本内容拥有著作权,禁止外泄,禁止未经授权使用。
 */
package com.sicheng.upload.thumbnail;
import java.io.InputStream;
/**
 * <p>
 * 标题: 图片处理接口
 * </p>
 * <p>
 * 描述:生成缩略图、裁剪、取图片格式、取图片宽度
 * </p>
 * <p>
 * 公司: 思程科技 www.sicheng.net
 * </p>
 * 
 * @author zhaolei
 * @date 2017年9月13日 下午3:07:03
 */
public interface ImageProcess {
	/**
	 * 生成缩略图,保持图片原有长宽比例
	 * 
	 * @param inputStream
	 * @param width
	 *            宽,像素
	 * @param height
	 *            高,像素
	 * @param quality
	 *            清晰度,1-100
	 * @param format
	 *            文件后缀
	 * @return
	 */
	public InputStream resize(InputStream inputStream, int width, int height, int quality, String format);
	/**
	 * 按"最小边"生成指定宽与高的缩略图,由于图片长宽比不同造成的"超出",将切掉
	 * 
	 * @param inputStream
	 * @param width
	 *            宽,像素
	 * @param height
	 *            高,像素
	 * @param quality
	 *            清晰度,1-100
	 * @param format
	 *            文件后缀
	 * @return
	 */
	public InputStream resizeAndCut(InputStream inputStream, int width, int height, int quality, String format);
	/**
	 * 取得图片信息 (宽、高、图片类型)
	 * 支持判断JPEG, GIF, PNG, BMP and TIFF
	 * 
	 * @param fileContent
	 *            文件内容字节数组
	 * @return ImageInfo
	 */
	public ImageInfo getImageInfo(InputStream inputStream);
	
	/**
	 * 取得图片类型 
	 * 支持判断JPEG, GIF, PNG, BMP and TIFF
	 * 注意:
	 * 1、图片类型使用大写字母描述。
	 * 2、jpg格式使用JPEG来表示。
	 * 
	 * @param inputStream
	 * @return 大写的文件类型
	 */
	public String getFormat(InputStream inputStream);
	
	/**
	 * 取得图片信息 (宽、高) 
	 * @param inputStream
	 * @return
	 */
	public ImageInfo getImageWH(InputStream inputStream);
}