图片工具类

类名:ImageUtil

toByteArray

/**
 * 转换输入流到byte
 *
 * @param src  源
 * @param type 类型
 * @return byte[]
 * @throws IOException 异常
 */
ImageUtil.toByteArray(BufferedImage src, String type);

readImage

/**
 * 获取图像内容
 *
 * @param srcImageFile 文件路径
 * @return BufferedImage
 */
ImageUtil.readImage(String srcImageFile);

readImage

/**
 * 获取图像内容
 *
 * @param srcImageFile 文件
 * @return BufferedImage
 */
ImageUtil.readImage(File srcImageFile);

readImage

/**
 * 获取图像内容
 *
 * @param srcInputStream 输入流
 * @return BufferedImage
 */
ImageUtil.readImage(InputStream srcInputStream);

readImage

/**
 * 获取图像内容
 *
 * @param url URL地址
 * @return BufferedImage
 */
ImageUtil.readImage(URL url);

zoomScale

/**
 * 缩放图像(按比例缩放)
 *
 * @param src    源图像
 * @param output 输出流
 * @param type   类型
 * @param scale  缩放比例
 * @param flag   缩放选择:true 放大; false 缩小;
 */
ImageUtil.zoomScale(BufferedImage src, OutputStream output, String type, double scale, boolean flag);

zoomFixed

/**
 * 缩放图像(按高度和宽度缩放)
 *
 * @param src       源图像
 * @param output    输出流
 * @param type      类型
 * @param height    缩放后的高度
 * @param width     缩放后的宽度
 * @param bb        比例不对时是否需要补白:true为补白; false为不补白;
 * @param fillColor 填充色,null时为Color.WHITE
 */
ImageUtil.zoomFixed(BufferedImage src, OutputStream output, String type, int height, int width, boolean bb, Color fillColor);

crop

/**
 * 图像裁剪(按指定起点坐标和宽高切割)
 *
 * @param src    源图像
 * @param output 切片后的图像地址
 * @param type   类型
 * @param x      目标切片起点坐标X
 * @param y      目标切片起点坐标Y
 * @param width  目标切片宽度
 * @param height 目标切片高度
 */
ImageUtil.crop(BufferedImage src, OutputStream output, String type, int x, int y, int width, int height);

sliceWithNumber

/**
 * 图像切割(指定切片的行数和列数)
 *
 * @param src   源图像地址
 * @param mos   切片目标文件夹
 * @param type  类型
 * @param prows 目标切片行数。默认2,必须是范围 [1, 20] 之内
 * @param pcols 目标切片列数。默认2,必须是范围 [1, 20] 之内
 */
ImageUtil.sliceWithNumber(BufferedImage src, IMultiOutputStream mos, String type, int prows, int pcols);

sliceWithSize

/**
 * 图像切割(指定切片的宽度和高度)
 *
 * @param src         源图像地址
 * @param mos         切片目标文件夹
 * @param type        类型
 * @param pdestWidth  目标切片宽度。默认200
 * @param pdestHeight 目标切片高度。默认150
 */
ImageUtil.sliceWithSize(BufferedImage src, IMultiOutputStream mos, String type, int pdestWidth, int pdestHeight);

convert

/**
 * 图像类型转换:GIF-JPG、GIF-PNG、PNG-JPG、PNG-GIF(X)、BMP-PNG
 *
 * @param src        源图像地址
 * @param formatName 包含格式非正式名称的 String:如JPG、JPEG、GIF等
 * @param output     目标图像地址
 */
ImageUtil.convert(BufferedImage src, OutputStream output, String formatName);

gray

/**
 * 彩色转为黑白
 *
 * @param src    源图像地址
 * @param output 目标图像地址
 * @param type      类型
 */
ImageUtil.gray(BufferedImage src, OutputStream output, String type);

textStamp

/**
 * 给图片添加文字水印
 *
 * @param src      源图像
 * @param output   输出流
 * @param type      类型
 * @param text     水印文字
 * @param font     水印的字体
 * @param color    水印的字体颜色
 * @param position 水印位置 {@link ImagePosition}
 * @param x        修正值
 * @param y        修正值
 * @param alpha    透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
 */
ImageUtil.textStamp(BufferedImage src, OutputStream output, String type, String text, Font font, Color color, int position, int x, int y, float alpha);

imageStamp

/**
 * 给图片添加图片水印
 *
 * @param src      源图像
 * @param output   输出流
 * @param type      类型
 * @param stamp    水印图片
 * @param position 水印位置 {@link ImagePosition}
 * @param x        修正值
 * @param y        修正值
 * @param alpha    透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
 */
ImageUtil.imageStamp(BufferedImage src, OutputStream output, String type, BufferedImage stamp, int position, int x, int y, float alpha);

calcTextWidth

/**
 * 计算text的长度(一个中文算两个字符)
 *
 * @param text text
 * @return int
 */
ImageUtil.calcTextWidth(String text);

defaultString

/**
 * 默认字符串
 * @param str 字符串
 * @param defaultStr 默认值
 * @return
 */
ImageUtil.defaultString(String str, String defaultStr);