Class ImageKit

java.lang.Object
org.miaixz.bus.extra.image.ImageKit

public class ImageKit extends Object
图片处理工具类: 功能:缩放图像、切割图像、旋转、图像类型转换、彩色转黑白、文字水印、图片水印等 参考:http://blog.csdn.net/zhangzhikaixinya/article/details/8459400
Since:
Java 17+
Author:
Kimi Liu
  • Field Details

  • Constructor Details

    • ImageKit

      public ImageKit()
  • Method Details

    • scale

      public static void scale(File srcImageFile, File destImageFile, float scale)
      缩放图像(按比例缩放),目标文件的扩展名决定目标文件类型
      Parameters:
      srcImageFile - 源图像文件
      destImageFile - 缩放后的图像文件,扩展名决定目标类型
      scale - 缩放比例。比例大于1时为放大,小于1大于0为缩小
    • scale

      public static void scale(InputStream srcStream, OutputStream targetStream, float scale)
      缩放图像(按比例缩放) 缩放后默认为jpeg格式,此方法并不关闭流
      Parameters:
      srcStream - 源图像来源流
      targetStream - 缩放后的图像写出到的流
      scale - 缩放比例。比例大于1时为放大,小于1大于0为缩小
    • scale

      public static void scale(ImageInputStream srcStream, ImageOutputStream targetStream, float scale)
      缩放图像(按比例缩放) 缩放后默认为jpeg格式,此方法并不关闭流
      Parameters:
      srcStream - 源图像来源流
      targetStream - 缩放后的图像写出到的流
      scale - 缩放比例。比例大于1时为放大,小于1大于0为缩小
    • scale

      public static void scale(Image srcImg, File destFile, float scale) throws org.miaixz.bus.core.lang.exception.InternalException
      缩放图像(按比例缩放) 缩放后默认为jpeg格式,此方法并不关闭流
      Parameters:
      srcImg - 源图像来源流,使用结束后需手动调用flush(Image)释放资源
      destFile - 缩放后的图像写出到的流
      scale - 缩放比例。比例大于1时为放大,小于1大于0为缩小
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • scale

      public static void scale(Image srcImg, OutputStream out, float scale) throws org.miaixz.bus.core.lang.exception.InternalException
      缩放图像(按比例缩放) 缩放后默认为jpeg格式,此方法并不关闭流
      Parameters:
      srcImg - 源图像来源流,使用结束后需手动调用flush(Image)释放资源
      out - 缩放后的图像写出到的流
      scale - 缩放比例。比例大于1时为放大,小于1大于0为缩小
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • scale

      public static void scale(Image srcImg, ImageOutputStream destImageStream, float scale) throws org.miaixz.bus.core.lang.exception.InternalException
      缩放图像(按比例缩放) 缩放后默认为jpeg格式,此方法并不关闭流
      Parameters:
      srcImg - 源图像来源流,使用结束后需手动调用flush(Image)释放资源
      destImageStream - 缩放后的图像写出到的流
      scale - 缩放比例。比例大于1时为放大,小于1大于0为缩小
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • scale

      public static Image scale(Image srcImg, float scale)
      缩放图像(按比例缩放)
      Parameters:
      srcImg - 源图像来源流,使用结束后需手动调用flush(Image)释放资源
      scale - 缩放比例。比例大于1时为放大,小于1大于0为缩小
      Returns:
      Image
    • scale

      public static Image scale(Image srcImg, int width, int height)
      缩放图像(按长宽缩放) 注意:目标长宽与原图不成比例会变形
      Parameters:
      srcImg - 源图像来源流,使用结束后需手动调用flush(Image)释放资源
      width - 目标宽度
      height - 目标高度
      Returns:
      Image
    • scale

      public static void scale(File srcImageFile, File targetImageFile, int width, int height, Color fixedColor) throws org.miaixz.bus.core.lang.exception.InternalException
      缩放图像(按高度和宽度缩放) 缩放后默认格式与源图片相同,无法识别原图片默认JPG
      Parameters:
      srcImageFile - 源图像文件地址
      targetImageFile - 缩放后的图像地址
      width - 缩放后的宽度
      height - 缩放后的高度
      fixedColor - 补充的颜色,不补充为null
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • scale

      public static void scale(InputStream srcStream, OutputStream targetStream, int width, int height, Color fixedColor) throws org.miaixz.bus.core.lang.exception.InternalException
      缩放图像(按高度和宽度缩放) 缩放后默认为jpeg格式,此方法并不关闭流
      Parameters:
      srcStream - 源图像流
      targetStream - 缩放后的图像目标流
      width - 缩放后的宽度
      height - 缩放后的高度
      fixedColor - 比例不对时补充的颜色,不补充为null
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • scale

      public static void scale(ImageInputStream srcStream, ImageOutputStream targetStream, int width, int height, Color fixedColor) throws org.miaixz.bus.core.lang.exception.InternalException
      缩放图像(按高度和宽度缩放) 缩放后默认为jpeg格式,此方法并不关闭流
      Parameters:
      srcStream - 源图像流
      targetStream - 缩放后的图像目标流
      width - 缩放后的宽度
      height - 缩放后的高度
      fixedColor - 比例不对时补充的颜色,不补充为null
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • scale

      public static void scale(Image srcImage, ImageOutputStream targetImageStream, int width, int height, Color fixedColor) throws org.miaixz.bus.core.lang.exception.InternalException
      缩放图像(按高度和宽度缩放) 缩放后默认为jpeg格式,此方法并不关闭流
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      targetImageStream - 缩放后的图像目标流
      width - 缩放后的宽度
      height - 缩放后的高度
      fixedColor - 比例不对时补充的颜色,不补充为null
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • scale

      public static Image scale(Image srcImage, int width, int height, Color fixedColor)
      缩放图像(按高度和宽度缩放) 缩放后默认为jpeg格式
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      width - 缩放后的宽度
      height - 缩放后的高度
      fixedColor - 比例不对时补充的颜色,不补充为null
      Returns:
      Image
    • cut

      public static void cut(File srcImgFile, File targetImgFile, Rectangle rectangle)
      图像切割(按指定起点坐标和宽高切割)
      Parameters:
      srcImgFile - 源图像文件
      targetImgFile - 切片后的图像文件
      rectangle - 矩形对象,表示矩形区域的x,y,width,height
    • cut

      public static void cut(InputStream srcStream, OutputStream targetStream, Rectangle rectangle)
      图像切割(按指定起点坐标和宽高切割),此方法并不关闭流
      Parameters:
      srcStream - 源图像流
      targetStream - 切片后的图像输出流
      rectangle - 矩形对象,表示矩形区域的x,y,width,height
    • cut

      public static void cut(ImageInputStream srcStream, ImageOutputStream targetStream, Rectangle rectangle)
      图像切割(按指定起点坐标和宽高切割),此方法并不关闭流
      Parameters:
      srcStream - 源图像流
      targetStream - 切片后的图像输出流
      rectangle - 矩形对象,表示矩形区域的x,y,width,height
    • cut

      public static void cut(Image srcImage, File destFile, Rectangle rectangle) throws org.miaixz.bus.core.lang.exception.InternalException
      图像切割(按指定起点坐标和宽高切割),此方法并不关闭流
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      destFile - 输出的文件
      rectangle - 矩形对象,表示矩形区域的x,y,width,height
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • cut

      public static void cut(Image srcImage, OutputStream out, Rectangle rectangle) throws org.miaixz.bus.core.lang.exception.InternalException
      图像切割(按指定起点坐标和宽高切割),此方法并不关闭流
      Parameters:
      srcImage - 源图像
      out - 切片后的图像输出流
      rectangle - 矩形对象,表示矩形区域的x,y,width,height
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • cut

      public static void cut(Image srcImage, ImageOutputStream targetImageStream, Rectangle rectangle) throws org.miaixz.bus.core.lang.exception.InternalException
      图像切割(按指定起点坐标和宽高切割),此方法并不关闭流
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      targetImageStream - 切片后的图像输出流
      rectangle - 矩形对象,表示矩形区域的x,y,width,height
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • cut

      public static Image cut(Image srcImage, Rectangle rectangle)
      图像切割(按指定起点坐标和宽高切割)
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      rectangle - 矩形对象,表示矩形区域的x,y,width,height
      Returns:
      BufferedImage
    • cut

      public static Image cut(Image srcImage, int x, int y)
      图像切割(按指定起点坐标和宽高切割),填充满整个图片(直径取长宽最小值)
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      x - 原图的x坐标起始位置
      y - 原图的y坐标起始位置
      Returns:
      Image
    • cut

      public static Image cut(Image srcImage, int x, int y, int radius)
      图像切割(按指定起点坐标和宽高切割)
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      x - 原图的x坐标起始位置
      y - 原图的y坐标起始位置
      radius - 半径,小于0表示填充满整个图片(直径取长宽最小值)
      Returns:
      Image
    • slice

      public static void slice(File srcImageFile, File descDir, int targetWidth, int targetHeight)
      图像切片(指定切片的宽度和高度)
      Parameters:
      srcImageFile - 源图像
      descDir - 切片目标文件夹
      targetWidth - 目标切片宽度。默认200
      targetHeight - 目标切片高度。默认150
    • slice

      public static void slice(Image srcImage, File descDir, int targetWidth, int targetHeight)
      图像切片(指定切片的宽度和高度)
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      descDir - 切片目标文件夹
      targetWidth - 目标切片宽度。默认200
      targetHeight - 目标切片高度。默认150
    • sliceByRowsAndCols

      public static void sliceByRowsAndCols(File srcImageFile, File targetDir, String formatName, int rows, int cols)
      图像切割(指定切片的行数和列数)
      Parameters:
      srcImageFile - 源图像文件
      targetDir - 切片目标文件夹
      formatName - 格式名称,即图片格式后缀
      rows - 目标切片行数。默认2,必须是范围 [1, 20] 之内
      cols - 目标切片列数。默认2,必须是范围 [1, 20] 之内
    • sliceByRowsAndCols

      public static void sliceByRowsAndCols(Image srcImage, File destDir, String formatName, int rows, int cols)
      图像切割(指定切片的行数和列数),默认RGB模式
      Parameters:
      srcImage - 源图像,如果非BufferedImage,则默认使用RGB模式,使用结束后需手动调用flush(Image)释放资源
      destDir - 切片目标文件夹
      formatName - 格式名称,即图片格式后缀
      rows - 目标切片行数。默认2,必须是范围 [1, 20] 之内
      cols - 目标切片列数。默认2,必须是范围 [1, 20] 之内
    • convert

      public static void convert(File srcImageFile, File targetImageFile)
      图像类型转换:GIF=JPG、GIF=PNG、PNG=JPG、PNG=GIF(X)、BMP=PNG
      Parameters:
      srcImageFile - 源图像文件
      targetImageFile - 目标图像文件
    • convert

      public static void convert(InputStream srcStream, String formatName, OutputStream targetStream)
      图像类型转换:GIF=JPG、GIF=PNG、PNG=JPG、PNG=GIF(X)、BMP=PNG 此方法并不关闭流
      Parameters:
      srcStream - 源图像流
      formatName - 包含格式非正式名称的 String:如JPG、JPEG、GIF等
      targetStream - 目标图像输出流
    • convert

      public static void convert(Image srcImage, String formatName, ImageOutputStream targetImageStream)
      图像类型转换:GIF=JPG、GIF=PNG、PNG=JPG、PNG=GIF(X)、BMP=PNG 此方法并不关闭流
      Parameters:
      srcImage - 源图像流,使用结束后需手动调用flush(Image)释放资源
      formatName - 包含格式非正式名称的 String:如JPG、JPEG、GIF等
      targetImageStream - 目标图像输出流
    • gray

      public static void gray(File srcImageFile, File targetImageFile)
      彩色转为黑白
      Parameters:
      srcImageFile - 源图像地址
      targetImageFile - 目标图像地址
    • gray

      public static void gray(InputStream srcStream, OutputStream targetStream)
      彩色转为黑白 此方法并不关闭流
      Parameters:
      srcStream - 源图像流
      targetStream - 目标图像流
    • gray

      public static void gray(ImageInputStream srcStream, ImageOutputStream targetStream)
      彩色转为黑白 此方法并不关闭流
      Parameters:
      srcStream - 源图像流
      targetStream - 目标图像流
    • gray

      public static void gray(Image srcImage, File outFile)
      彩色转为黑白
      Parameters:
      srcImage - 源图像流,使用结束后需手动调用flush(Image)释放资源
      outFile - 目标文件
    • gray

      public static void gray(Image srcImage, OutputStream out)
      彩色转为黑白 此方法并不关闭流
      Parameters:
      srcImage - 源图像流,使用结束后需手动调用flush(Image)释放资源
      out - 目标图像流
    • gray

      public static void gray(Image srcImage, ImageOutputStream targetImageStream) throws org.miaixz.bus.core.lang.exception.InternalException
      彩色转为黑白 此方法并不关闭流
      Parameters:
      srcImage - 源图像流,使用结束后需手动调用flush(Image)释放资源
      targetImageStream - 目标图像流
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • gray

      public static Image gray(Image srcImage)
      彩色转为黑白
      Parameters:
      srcImage - 源图像流,使用结束后需手动调用flush(Image)释放资源
      Returns:
      Image灰度后的图片
    • binary

      public static void binary(File srcImageFile, File targetImageFile)
      彩色转为黑白二值化图片,根据目标文件扩展名确定转换后的格式
      Parameters:
      srcImageFile - 源图像地址
      targetImageFile - 目标图像地址
    • binary

      public static void binary(InputStream srcStream, OutputStream targetStream, String imageType)
      彩色转为黑白二值化图片 此方法并不关闭流
      Parameters:
      srcStream - 源图像流
      targetStream - 目标图像流
      imageType - 图片格式(扩展名)
    • binary

      public static void binary(ImageInputStream srcStream, ImageOutputStream targetStream, String imageType)
      彩色转为黑白黑白二值化图片 此方法并不关闭流
      Parameters:
      srcStream - 源图像流
      targetStream - 目标图像流
      imageType - 图片格式(扩展名)
    • binary

      public static void binary(Image srcImage, File outFile)
      彩色转为黑白二值化图片,根据目标文件扩展名确定转换后的格式
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      outFile - 目标文件
    • binary

      public static void binary(Image srcImage, OutputStream out, String imageType)
      彩色转为黑白二值化图片 此方法并不关闭流,输出JPG格式
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      out - 目标图像流
      imageType - 图片格式(扩展名)
    • binary

      public static void binary(Image srcImage, ImageOutputStream targetImageStream, String imageType) throws org.miaixz.bus.core.lang.exception.InternalException
      彩色转为黑白二值化图片 此方法并不关闭流,输出JPG格式
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      targetImageStream - 目标图像流
      imageType - 图片格式(扩展名)
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • binary

      public static Image binary(Image srcImage)
      彩色转为黑白二值化图片
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      Returns:
      Image二值化后的图片
    • pressText

      public static void pressText(File imageFile, File targetFile, ImageText pressText)
      给图片添加文字水印
      Parameters:
      imageFile - 源图像文件
      targetFile - 目标图像文件
      pressText - 水印文字
    • pressText

      public static void pressText(InputStream srcStream, OutputStream targetStream, ImageText pressText)
      给图片添加文字水印 此方法并不关闭流
      Parameters:
      srcStream - 源图像流
      targetStream - 目标图像流
      pressText - 水印文本信息
    • pressText

      public static void pressText(Image srcImage, File targetFile, ImageText pressText) throws org.miaixz.bus.core.lang.exception.InternalException
      给图片添加文字水印 此方法并不关闭流
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      targetFile - 目标流
      pressText - 水印文字信息
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • pressText

      public static void pressText(Image srcImage, OutputStream to, ImageText pressText) throws org.miaixz.bus.core.lang.exception.InternalException
      给图片添加文字水印 此方法并不关闭流
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      to - 目标流
      pressText - 水印文字信息
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • pressText

      public static void pressText(Image srcImage, ImageOutputStream targetImageStream, ImageText pressText) throws org.miaixz.bus.core.lang.exception.InternalException
      给图片添加文字水印 此方法并不关闭流
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      targetImageStream - 目标图像流
      pressText - 水印文字信息
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • pressText

      public static Image pressText(Image srcImage, ImageText pressText)
      给图片添加文字水印 此方法并不关闭流
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      pressText - 水印文字信息
      Returns:
      处理后的图像
    • pressTextFull

      public static Image pressTextFull(Image srcImage, String pressText, Color color, Font font, int lineHeight, int degree, float alpha)
      给图片添加全屏文字水印 此方法并不关闭流
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      pressText - 水印文字
      color - 水印的字体颜色
      font - Font 字体相关信息,如果默认则为null
      lineHeight - 行高
      degree - 旋转角度,(单位:弧度),以圆点(0,0)为圆心,正代表顺时针,负代表逆时针
      alpha - 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
      Returns:
      处理后的图像
    • pressImage

      public static void pressImage(File srcImageFile, File targetImageFile, Image pressImg, int x, int y, float alpha)
      给图片添加图片水印
      Parameters:
      srcImageFile - 源图像文件
      targetImageFile - 目标图像文件
      pressImg - 水印图片,使用结束后需手动调用flush(Image)释放资源
      x - 修正值。 默认在中间,偏移量相对于中间偏移
      y - 修正值。 默认在中间,偏移量相对于中间偏移
      alpha - 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
    • pressImage

      public static void pressImage(InputStream srcStream, OutputStream targetStream, Image pressImg, int x, int y, float alpha)
      给图片添加图片水印 此方法并不关闭流
      Parameters:
      srcStream - 源图像流
      targetStream - 目标图像流
      pressImg - 水印图片,可以使用ImageIO.read(File)方法读取文件
      x - 修正值。 默认在中间,偏移量相对于中间偏移
      y - 修正值。 默认在中间,偏移量相对于中间偏移
      alpha - 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
    • pressImage

      public static void pressImage(Image srcImage, File outFile, Image pressImg, int x, int y, float alpha) throws org.miaixz.bus.core.lang.exception.InternalException
      给图片添加图片水印 此方法并不关闭流
      Parameters:
      srcImage - 源图像流,使用结束后需手动调用flush(Image)释放资源
      outFile - 写出文件
      pressImg - 水印图片,可以使用ImageIO.read(File)方法读取文件
      x - 修正值。 默认在中间,偏移量相对于中间偏移
      y - 修正值。 默认在中间,偏移量相对于中间偏移
      alpha - 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • pressImage

      public static void pressImage(Image srcImage, OutputStream out, Image pressImg, int x, int y, float alpha) throws org.miaixz.bus.core.lang.exception.InternalException
      给图片添加图片水印,写出目标图片格式为JPG 此方法并不关闭流
      Parameters:
      srcImage - 源图像流,使用结束后需手动调用flush(Image)释放资源
      out - 目标图像流
      pressImg - 水印图片,可以使用ImageIO.read(File)方法读取文件
      x - 修正值。 默认在中间,偏移量相对于中间偏移
      y - 修正值。 默认在中间,偏移量相对于中间偏移
      alpha - 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • pressImage

      public static void pressImage(Image srcImage, ImageOutputStream targetImageStream, Image pressImg, int x, int y, float alpha) throws org.miaixz.bus.core.lang.exception.InternalException
      给图片添加图片水印,写出目标图片格式为JPG 此方法并不关闭流
      Parameters:
      srcImage - 源图像流,使用结束后需手动调用flush(Image)释放资源
      targetImageStream - 目标图像流
      pressImg - 水印图片,可以使用ImageIO.read(File)方法读取文件
      x - 修正值。 默认在中间,偏移量相对于中间偏移
      y - 修正值。 默认在中间,偏移量相对于中间偏移
      alpha - 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • pressImage

      public static Image pressImage(Image srcImage, Image pressImg, int x, int y, float alpha)
      给图片添加图片水印 此方法并不关闭流
      Parameters:
      srcImage - 源图像流,使用结束后需手动调用flush(Image)释放资源
      pressImg - 水印图片,可以使用ImageIO.read(File)方法读取文件
      x - 修正值。 默认在中间,偏移量相对于中间偏移
      y - 修正值。 默认在中间,偏移量相对于中间偏移
      alpha - 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
      Returns:
      结果图片
    • pressImage

      public static Image pressImage(Image srcImage, Image pressImg, Rectangle rectangle, float alpha)
      给图片添加图片水印 此方法并不关闭流
      Parameters:
      srcImage - 源图像流,使用结束后需手动调用flush(Image)释放资源
      pressImg - 水印图片,可以使用ImageIO.read(File)方法读取文件
      rectangle - 矩形对象,表示矩形区域的x,y,width,height,x,y从背景图片中心计算
      alpha - 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
      Returns:
      结果图片
    • pressImageFull

      public static void pressImageFull(File imageFile, File targetFile, File pressImageFile, int lineHeight, int degree, float alpha) throws org.miaixz.bus.core.lang.exception.InternalException
      给图片添加全屏图片水印
      Parameters:
      imageFile - 源图像文件
      targetFile - 目标图像文件
      pressImageFile - 水印图像文件
      lineHeight - 行高
      degree - 水印图像旋转角度,(单位:弧度),以圆点(0,0)为圆心,正代表顺时针,负代表逆时针
      alpha - 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • pressImageFull

      public static void pressImageFull(InputStream srcStream, OutputStream targetStream, InputStream pressStream, int lineHeight, int degree, float alpha) throws org.miaixz.bus.core.lang.exception.InternalException
      给图片添加全屏图像水印,写出格式为JPG 此方法并不关闭流
      Parameters:
      srcStream - 源图像流
      targetStream - 目标图像流
      pressStream - 水印图像流
      lineHeight - 行高
      degree - 水印图像旋转角度,(单位:弧度),以圆点(0,0)为圆心,正代表顺时针,负代表逆时针
      alpha - 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • pressImageFull

      public static Image pressImageFull(Image srcImage, Image pressImage, int lineHeight, int degree, float alpha)
      给图片添加全屏图像水印 此方法并不关闭流
      Parameters:
      srcImage - 源图像,使用结束后需手动调用flush(Image)释放资源
      pressImage - 水印图像,使用结束后需手动调用flush(Image)释放资源
      lineHeight - 行高
      degree - 水印图像旋转角度,(单位:弧度),以圆点(0,0)为圆心,正代表顺时针,负代表逆时针,(单位:弧度),以圆点(0,0)为圆心,正代表顺时针,负代表逆时针
      alpha - 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
      Returns:
      处理后的图像
    • rotate

      public static void rotate(File imageFile, int degree, File outFile) throws org.miaixz.bus.core.lang.exception.InternalException
      旋转图片为指定角度 此方法不会关闭输出流
      Parameters:
      imageFile - 被旋转图像文件
      degree - 旋转角度
      outFile - 输出文件
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • rotate

      public static void rotate(Image image, int degree, File outFile) throws org.miaixz.bus.core.lang.exception.InternalException
      旋转图片为指定角度 此方法不会关闭输出流
      Parameters:
      image - 需要旋转的图像,使用结束后需手动调用flush(Image)释放资源
      degree - 旋转角度
      outFile - 输出文件
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • rotate

      public static void rotate(Image image, int degree, OutputStream out) throws org.miaixz.bus.core.lang.exception.InternalException
      旋转图片为指定角度 此方法不会关闭输出流
      Parameters:
      image - 需要旋转的图像,使用结束后需手动调用flush(Image)释放资源
      degree - 旋转角度
      out - 输出流
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • rotate

      public static void rotate(Image image, int degree, ImageOutputStream out) throws org.miaixz.bus.core.lang.exception.InternalException
      旋转图片为指定角度 此方法不会关闭输出流,输出格式为JPG
      Parameters:
      image - 需要旋转的图像,使用结束后需手动调用flush(Image)释放资源
      degree - 旋转角度
      out - 输出图像流
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • rotate

      public static Image rotate(Image image, int degree)
      旋转图片为指定角度 来自:http://blog.51cto.com/cping1982/130066
      Parameters:
      image - 需要旋转的图像,使用结束后需手动调用flush(Image)释放资源
      degree - 旋转角度
      Returns:
      旋转后的图片
    • flip

      public static void flip(File imageFile, File outFile) throws org.miaixz.bus.core.lang.exception.InternalException
      水平翻转图像
      Parameters:
      imageFile - 图像文件
      outFile - 输出文件
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • flip

      public static void flip(Image image, File outFile) throws org.miaixz.bus.core.lang.exception.InternalException
      水平翻转图像
      Parameters:
      image - 图像,使用结束后需手动调用flush(Image)释放资源
      outFile - 输出文件
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • flip

      public static void flip(Image image, OutputStream out) throws org.miaixz.bus.core.lang.exception.InternalException
      水平翻转图像
      Parameters:
      image - 图像,使用结束后需手动调用flush(Image)释放资源
      out - 输出
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • flip

      public static void flip(Image image, ImageOutputStream out) throws org.miaixz.bus.core.lang.exception.InternalException
      水平翻转图像,写出格式为JPG
      Parameters:
      image - 图像,使用结束后需手动调用flush(Image)释放资源
      out - 输出
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • flip

      public static Image flip(Image image)
      水平翻转图像
      Parameters:
      image - 图像,使用结束后需手动调用flush(Image)释放资源
      Returns:
      翻转后的图片
    • compress

      public static void compress(File imageFile, File outFile, float quality) throws org.miaixz.bus.core.lang.exception.InternalException
      压缩图像,输出图像只支持jpg文件
      Parameters:
      imageFile - 图像文件
      outFile - 输出文件,只支持jpg文件
      quality - 压缩比例,必须为0~1
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • castToRenderedImage

      public static RenderedImage castToRenderedImage(Image img, String imageType)
      ImageRenderedImage 首先尝试强转,否则新建一个BufferedImage后重新绘制,使用 BufferedImage.TYPE_INT_RGB 模式。
      Parameters:
      img - Image
      imageType - 目标图片类型,例如jpg或png等
      Returns:
      BufferedImage
    • castToBufferedImage

      public static BufferedImage castToBufferedImage(Image img, String imageType)
      ImageBufferedImage 首先尝试强转,否则新建一个BufferedImage后重新绘制,使用 imageType 模式
      Parameters:
      img - Image
      imageType - 目标图片类型,例如jpg或png等
      Returns:
      BufferedImage
    • toBufferedImage

      public static BufferedImage toBufferedImage(Image image, String imageType)
      ImageBufferedImage 如果源图片的RGB模式与目标模式一致,则直接转换,否则重新绘制 默认的,png图片使用 BufferedImage.TYPE_INT_ARGB模式,其它使用 BufferedImage.TYPE_INT_RGB 模式
      Parameters:
      image - Image
      imageType - 目标图片类型,例如jpg或png等
      Returns:
      BufferedImage
    • toBufferedImage

      public static BufferedImage toBufferedImage(Image image, String imageType, Color backgroundColor)
      ImageBufferedImage 如果源图片的RGB模式与目标模式一致,则直接转换,否则重新绘制 默认的,png图片使用 BufferedImage.TYPE_INT_ARGB模式,其它使用 BufferedImage.TYPE_INT_RGB 模式
      Parameters:
      image - Image
      imageType - 目标图片类型,例如jpg或png等
      backgroundColor - 背景色Colornull 表示默认背景色(黑色或者透明)
      Returns:
      BufferedImage
    • toBufferedImage

      public static BufferedImage toBufferedImage(Image image, int imageType)
      ImageBufferedImage 如果源图片的RGB模式与目标模式一致,则直接转换,否则重新绘制
      Parameters:
      image - Image
      imageType - 目标图片类型,BufferedImage中的常量,例如黑白等
      Returns:
      BufferedImage
    • toBufferedImage

      public static BufferedImage toBufferedImage(Image image, int imageType, Color backgroundColor)
      ImageBufferedImage 如果源图片的RGB模式与目标模式一致,则直接转换,否则重新绘制
      Parameters:
      image - Image
      imageType - 目标图片类型,BufferedImage中的常量,例如黑白等
      backgroundColor - 背景色Colornull 表示默认背景色(黑色或者透明)
      Returns:
      BufferedImage
    • copyImage

      public static BufferedImage copyImage(Image img, int imageType)
      将已有Image复制新的一份出来
      Parameters:
      img - Image
      imageType - 目标图片类型,BufferedImage中的常量,例如黑白等
      Returns:
      BufferedImage
      See Also:
    • copyImage

      public static BufferedImage copyImage(Image img, int imageType, Color backgroundColor)
      将已有Image复制新的一份出来
      Parameters:
      img - Image
      imageType - 目标图片类型,BufferedImage中的常量,例如黑白等
      backgroundColor - 背景色,null 表示默认背景色(黑色或者透明)
      Returns:
      BufferedImage
      See Also:
    • toImage

      public static BufferedImage toImage(String base64) throws org.miaixz.bus.core.lang.exception.InternalException
      将Base64编码的图像信息转为 BufferedImage
      Parameters:
      base64 - 图像的Base64表示
      Returns:
      BufferedImage
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • toImage

      public static BufferedImage toImage(byte[] imageBytes) throws org.miaixz.bus.core.lang.exception.InternalException
      将的图像bytes转为 BufferedImage
      Parameters:
      imageBytes - 图像bytes
      Returns:
      BufferedImage
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • toStream

      public static ByteArrayInputStream toStream(Image image, String imageType)
      将图片对象转换为InputStream形式
      Parameters:
      image - 图片对象
      imageType - 图片类型
      Returns:
      Base64的字符串表现形式
    • toBase64DataUri

      public static String toBase64DataUri(Image image, String imageType)
      将图片对象转换为Base64的Data URI形式,格式为:data:image/[imageType];base64,[data]
      Parameters:
      image - 图片对象
      imageType - 图片类型
      Returns:
      Base64的字符串表现形式
    • toBase64

      public static String toBase64(Image image, String imageType)
      将图片对象转换为Base64形式
      Parameters:
      image - 图片对象
      imageType - 图片类型
      Returns:
      Base64的字符串表现形式
    • toBytes

      public static byte[] toBytes(Image image, String imageType)
      将图片对象转换为bytes形式
      Parameters:
      image - 图片对象
      imageType - 图片类型
      Returns:
      Base64的字符串表现形式
    • createCompatibleImage

      public static BufferedImage createCompatibleImage(int width, int height, int transparency)
      创建与当前设备颜色模式兼容的 BufferedImage
      Parameters:
      width - 宽度
      height - 高度
      transparency - 透明模式,见 Transparency
      Returns:
      BufferedImage
    • createTransparentImage

      public static void createTransparentImage(String text, Font font, Color fontColor, ImageOutputStream out) throws org.miaixz.bus.core.lang.exception.InternalException
      根据文字创建透明背景的PNG图片
      Parameters:
      text - 文字
      font - 字体Font
      fontColor - 字体颜色,默认黑色
      out - 图片输出地
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • createImage

      public static void createImage(String text, Font font, Color backgroundColor, Color fontColor, ImageOutputStream out) throws org.miaixz.bus.core.lang.exception.InternalException
      根据文字创建PNG图片
      Parameters:
      text - 文字
      font - 字体Font
      backgroundColor - 背景颜色,默认透明
      fontColor - 字体颜色,默认黑色
      out - 图片输出地
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • createImage

      public static BufferedImage createImage(String text, Font font, Color backgroundColor, Color fontColor, int imageType) throws org.miaixz.bus.core.lang.exception.InternalException
      根据文字创建图片
      Parameters:
      text - 文字
      font - 字体Font
      backgroundColor - 背景颜色,默认透明
      fontColor - 字体颜色,默认黑色
      imageType - 图片类型,见:BufferedImage
      Returns:
      图片
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • writeJpg

      public static void writeJpg(Image image, ImageOutputStream targetImageStream) throws org.miaixz.bus.core.lang.exception.InternalException
      写出图像为JPG格式
      Parameters:
      image - Image
      targetImageStream - 写出到的目标流
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • writePng

      public static void writePng(Image image, ImageOutputStream targetImageStream) throws org.miaixz.bus.core.lang.exception.InternalException
      写出图像为PNG格式
      Parameters:
      image - Image,使用结束后需手动调用flush(Image)释放资源
      targetImageStream - 写出到的目标流
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • writeJpg

      public static void writeJpg(Image image, OutputStream out) throws org.miaixz.bus.core.lang.exception.InternalException
      写出图像为JPG格式
      Parameters:
      image - Image,使用结束后需手动调用flush(Image)释放资源
      out - 写出到的目标流
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • writePng

      public static void writePng(Image image, OutputStream out) throws org.miaixz.bus.core.lang.exception.InternalException
      写出图像为PNG格式
      Parameters:
      image - Image,使用结束后需手动调用flush(Image)释放资源
      out - 写出到的目标流
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • write

      public static void write(ImageInputStream srcStream, String formatName, ImageOutputStream targetStream)
      按照目标格式写出图像:GIF=JPG、GIF=PNG、PNG=JPG、PNG=GIF(X)、BMP=PNG 此方法并不关闭流
      Parameters:
      srcStream - 源图像流
      formatName - 包含格式非正式名称的 String:如JPG、JPEG、GIF等
      targetStream - 目标图像输出流
    • write

      public static void write(Image image, String imageType, OutputStream out) throws org.miaixz.bus.core.lang.exception.InternalException
      写出图像:GIF=JPG、GIF=PNG、PNG=JPG、PNG=GIF(X)、BMP=PNG 此方法并不关闭流
      Parameters:
      image - Image,使用结束后需手动调用flush(Image)释放资源
      imageType - 图片类型(图片扩展名)
      out - 写出到的目标流
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • write

      public static void write(Image image, File targetFile) throws org.miaixz.bus.core.lang.exception.InternalException
      写出图像为目标文件扩展名对应的格式
      Parameters:
      image - Image,使用结束后需手动调用flush(Image)释放资源
      targetFile - 目标文件
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • write

      public static void write(Image image, String imageType, ImageOutputStream targetImageStream) throws org.miaixz.bus.core.lang.exception.InternalException
      写出图像为指定格式:GIF=JPG、GIF=PNG、PNG=JPG、PNG=GIF(X)、BMP=PNG 此方法并不关闭流
      Parameters:
      image - Image,使用结束后需手动调用flush(Image)释放资源
      imageType - 图片类型(图片扩展名)
      targetImageStream - 写出到的目标流
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • write

      public static void write(Image image, String imageType, ImageOutputStream out, float quality, Color backgroundColor) throws org.miaixz.bus.core.lang.exception.InternalException
      写出图像为指定格式
      Parameters:
      image - Image,使用结束后需手动调用flush(Image)释放资源
      imageType - 图片类型(图片扩展名),null表示使用RGB模式(JPG)
      out - 写出到的目标流
      quality - 质量,数字为0~1(不包括0和1)表示质量压缩比,除此数字外设置表示不压缩
      backgroundColor - 背景色Color
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • write

      public static void write(Image image, String imageType, ImageOutputStream output, float quality)
      通过ImageWriter写出图片到输出流
      Parameters:
      image - 图片,使用结束后需手动调用flush(Image)释放资源
      imageType - 图片类型
      output - 输出的Image流ImageOutputStream
      quality - 质量,数字为0~1(不包括0和1)表示质量压缩比,除此数字外设置表示不压缩
    • getWriter

      public static ImageWriter getWriter(Image img, String formatName)
      根据给定的Image对象和格式获取对应的ImageWriter,如果未找到合适的Writer,返回null
      Parameters:
      img - Image,使用结束后需手动调用flush(Image)释放资源
      formatName - 图片格式,例如"jpg"、"png",null则使用默认值"jpg"
      Returns:
      ImageWriter
    • getWriter

      public static ImageWriter getWriter(String formatName)
      根据给定的图片格式或者扩展名获取ImageWriter,如果未找到合适的Writer,返回null
      Parameters:
      formatName - 图片格式或扩展名,例如"jpg"、"png",null则使用默认值"jpg"
      Returns:
      ImageWriter
    • read

      public static BufferedImage read(String imageFilePath)
      从文件中读取图片,请使用绝对路径,使用相对路径会相对于ClassPath
      Parameters:
      imageFilePath - 图片文件路径
      Returns:
      图片
    • read

      public static BufferedImage read(File imageFile)
      从文件中读取图片
      Parameters:
      imageFile - 图片文件
      Returns:
      图片
    • read

      public static BufferedImage read(org.miaixz.bus.core.io.resource.Resource resource)
      Resource中读取图片
      Parameters:
      resource - 图片资源
      Returns:
      图片
    • read

      public static BufferedImage read(InputStream imageStream)
      从流中读取图片
      Parameters:
      imageStream - 图片文件
      Returns:
      图片
    • read

      public static BufferedImage read(ImageInputStream imageStream)
      从图片流中读取图片
      Parameters:
      imageStream - 图片文件
      Returns:
      图片
    • read

      public static BufferedImage read(URL imageUrl)
      从URL中读取图片
      Parameters:
      imageUrl - 图片文件
      Returns:
      图片
    • getReader

      public static ImageReader getReader(String type)
      Parameters:
      type - 图片文件类型,例如 "jpeg" 或 "tiff"
      Returns:
      ImageReader
    • getWidthAndHeight

      public static org.miaixz.bus.core.lang.tuple.Pair<Integer,Integer> getWidthAndHeight(InputStream imageStream, String type)
      通过 ImageInputStream 获取对应类型的宽和高
      Parameters:
      imageStream - ImageInputStream
      type - 图片类型
      Returns:
      宽和高
    • getWidthAndHeight

      public static org.miaixz.bus.core.lang.tuple.Pair<Integer,Integer> getWidthAndHeight(ImageInputStream imageStream, String type)
      通过 ImageInputStream 获取对应类型的宽和高
      Parameters:
      imageStream - ImageInputStream
      type - 图片类型
      Returns:
      宽和高
    • getImage

      public static Image getImage(URL url)
      从URL中获取或读取图片对象
      Parameters:
      url - URL
      Returns:
      Image
    • getImageOutputStream

      public static ImageOutputStream getImageOutputStream(OutputStream out) throws org.miaixz.bus.core.lang.exception.InternalException
      Parameters:
      out - OutputStream
      Returns:
      ImageOutputStream
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • getImageOutputStream

      public static ImageOutputStream getImageOutputStream(File outFile) throws org.miaixz.bus.core.lang.exception.InternalException
      Parameters:
      outFile - File
      Returns:
      ImageOutputStream
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • getImageInputStream

      public static ImageInputStream getImageInputStream(InputStream in) throws org.miaixz.bus.core.lang.exception.InternalException
      Parameters:
      in - InputStream
      Returns:
      ImageInputStream
      Throws:
      org.miaixz.bus.core.lang.exception.InternalException - IO异常
    • getPointBaseCentre

      public static Point getPointBaseCentre(Rectangle rectangle, int backgroundWidth, int backgroundHeight)
      获得修正后的矩形坐标位置,变为以背景中心为基准坐标(即x,y == 0,0时,处于背景正中)
      Parameters:
      rectangle - 矩形
      backgroundWidth - 参考宽(背景宽)
      backgroundHeight - 参考高(背景高)
      Returns:
      修正后的Point
    • backgroundRemoval

      public static void backgroundRemoval(String inputPath, String outputPath, int tolerance)
      背景移除 图片去底工具 将 "纯色背景的图片" 还原成 "透明背景的图片" 将纯色背景的图片转成矢量图 取图片边缘的像素点和获取到的图片主题色作为要替换的背景色 再加入一定的容差值,然后将所有像素点与该颜色进行比较 发现相同则将颜色不透明度设置为0,使颜色完全透明.
      Parameters:
      inputPath - 要处理图片的路径
      outputPath - 输出图片的路径
      tolerance - 容差值[根据图片的主题色,加入容差值,值的范围在0~255之间]
    • backgroundRemoval

      public static void backgroundRemoval(File input, File output, int tolerance)
      背景移除 图片去底工具 将 "纯色背景的图片" 还原成 "透明背景的图片" 将纯色背景的图片转成矢量图 取图片边缘的像素点和获取到的图片主题色作为要替换的背景色 再加入一定的容差值,然后将所有像素点与该颜色进行比较 发现相同则将颜色不透明度设置为0,使颜色完全透明.
      Parameters:
      input - 需要进行操作的图片
      output - 最后输出的文件
      tolerance - 容差值[根据图片的主题色,加入容差值,值的取值范围在0~255之间]
    • backgroundRemoval

      public static void backgroundRemoval(File input, File output, Color override, int tolerance)
      背景移除 图片去底工具 将 "纯色背景的图片" 还原成 "透明背景的图片" 将纯色背景的图片转成矢量图 取图片边缘的像素点和获取到的图片主题色作为要替换的背景色 再加入一定的容差值,然后将所有像素点与该颜色进行比较 发现相同则将颜色不透明度设置为0,使颜色完全透明.
      Parameters:
      input - 需要进行操作的图片
      output - 最后输出的文件
      override - 指定替换成的背景颜色 为null时背景为透明
      tolerance - 容差值[根据图片的主题色,加入容差值,值的取值范围在0~255之间]
    • backgroundRemoval

      public static BufferedImage backgroundRemoval(BufferedImage bufferedImage, Color override, int tolerance)
      背景移除 图片去底工具 将 "纯色背景的图片" 还原成 "透明背景的图片" 将纯色背景的图片转成矢量图 取图片边缘的像素点和获取到的图片主题色作为要替换的背景色 再加入一定的容差值,然后将所有像素点与该颜色进行比较 发现相同则将颜色不透明度设置为0,使颜色完全透明.
      Parameters:
      bufferedImage - 需要进行处理的图片流
      override - 指定替换成的背景颜色 为null时背景为透明
      tolerance - 容差值[根据图片的主题色,加入容差值,值的取值范围在0~255之间]
      Returns:
      返回处理好的图片流
    • backgroundRemoval

      public static BufferedImage backgroundRemoval(ByteArrayOutputStream outputStream, Color override, int tolerance)
      背景移除 图片去底工具 将 "纯色背景的图片" 还原成 "透明背景的图片" 将纯色背景的图片转成矢量图 取图片边缘的像素点和获取到的图片主题色作为要替换的背景色 再加入一定的容差值,然后将所有像素点与该颜色进行比较 发现相同则将颜色不透明度设置为0,使颜色完全透明.
      Parameters:
      outputStream - 需要进行处理的图片字节数组流
      override - 指定替换成的背景颜色 为null时背景为透明
      tolerance - 容差值[根据图片的主题色,加入容差值,值的取值范围在0~255之间]
      Returns:
      返回处理好的图片流
    • colorConvert

      public static BufferedImage colorConvert(ColorSpace colorSpace, BufferedImage image)
      图片颜色转换 可以使用灰度 (gray)等
      Parameters:
      colorSpace - 颜色模式,如灰度等
      image - 被转换的图片
      Returns:
      转换后的图片
    • transform

      public static BufferedImage transform(AffineTransform xform, BufferedImage image)
      转换图片 可以使用一系列平移 (translation)、缩放 (scale)、翻转 (flip)、旋转 (rotation) 和错切 (shear) 来构造仿射变换。
      Parameters:
      xform - 2D仿射变换,它执行从 2D 坐标到其他 2D 坐标的线性映射,保留了线的“直线性”和“平行性”。
      image - 被转换的图片
      Returns:
      转换后的图片
    • filter

      public static BufferedImage filter(BufferedImageOp op, BufferedImage image)
      图片过滤转换
      Parameters:
      op - 过滤操作实现,如二维转换可传入AffineTransformOp
      image - 原始图片
      Returns:
      过滤后的图片
    • filter

      public static Image filter(ImageFilter filter, Image image)
      图片滤镜,借助 ImageFilter实现,实现不同的图片滤镜
      Parameters:
      filter - 滤镜实现
      image - 图片
      Returns:
      滤镜后的图片
    • flush

      public static void flush(Image image)
      刷新和释放Image 资源
      Parameters:
      image - Image
    • createGraphics

      public static Graphics2D createGraphics(BufferedImage image, Color color)
      Parameters:
      image - BufferedImage
      color - Color背景颜色以及当前画笔颜色,null表示不设置背景色
      Returns:
      Graphics2D
    • getCenterY

      public static int getCenterY(Graphics g, int backgroundHeight)
      获取文字居中高度的Y坐标(距离上边距距离) 此方法依赖FontMetrics,如果获取失败,默认为背景高度的1/3
      Parameters:
      g - Graphics2D画笔
      backgroundHeight - 背景高度
      Returns:
      最小高度,-1表示无法获取
    • drawStringColourful

      public static Graphics drawStringColourful(Graphics g, String text, Font font, int width, int height)
      绘制字符串,使用随机颜色,默认抗锯齿
      Parameters:
      g - Graphics画笔
      text - 字符串
      font - 字体
      width - 字符串总宽度
      height - 字符串背景高度
      Returns:
      画笔对象
    • drawString

      public static Graphics drawString(Graphics g, String text, Font font, Color color, int width, int height)
      绘制字符串,默认抗锯齿
      Parameters:
      g - Graphics画笔
      text - 字符串
      font - 字体
      color - 字体颜色,null 表示使用随机颜色(每个字符单独随机)
      width - 字符串背景的宽度
      height - 字符串背景的高度
      Returns:
      画笔对象
    • drawString

      public static Graphics drawString(Graphics g, String text, Font font, Color color, Rectangle rectangle)
      绘制字符串,默认抗锯齿。 此方法定义一个矩形区域和坐标,文字基于这个区域中间偏移x,y绘制。
      Parameters:
      g - Graphics画笔
      text - 字符串
      font - 字体,字体大小决定了在背景中绘制的大小
      color - 字体颜色,null 表示使用黑色
      rectangle - 字符串绘制坐标和大小,此对象定义了绘制字符串的区域大小和偏移位置
      Returns:
      画笔对象
    • drawString

      public static Graphics drawString(Graphics g, String text, Font font, Color color, Point point)
      绘制字符串,默认抗锯齿
      Parameters:
      g - Graphics画笔
      text - 字符串
      font - 字体,字体大小决定了在背景中绘制的大小
      color - 字体颜色,null 表示使用黑色
      point - 绘制字符串的位置坐标
      Returns:
      画笔对象
    • drawImg

      public static Graphics drawImg(Graphics g, Image img, Point point)
      绘制图片
      Parameters:
      g - 画笔
      img - 要绘制的图片
      point - 绘制的位置,基于左上角
      Returns:
      画笔对象
    • drawImg

      public static Graphics drawImg(Graphics g, Image img, Rectangle rectangle)
      绘制图片
      Parameters:
      g - 画笔
      img - 要绘制的图片
      rectangle - 矩形对象,表示矩形区域的x,y,width,height,,基于左上角
      Returns:
      画笔对象
    • setAlpha

      public static Graphics2D setAlpha(Graphics2D g, float alpha)
      设置画笔透明度
      Parameters:
      g - 画笔
      alpha - 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
      Returns:
      画笔
    • createFont

      public static Font createFont()
      创建默认字体
      Returns:
      默认字体
    • createSansSerifFont

      public static Font createSansSerifFont(int size)
      创建SansSerif字体
      Parameters:
      size - 字体大小
      Returns:
      字体
    • createFont

      public static Font createFont(String name, int size)
      创建指定名称的字体
      Parameters:
      name - 字体名称
      size - 字体大小
      Returns:
      字体
    • createFont

      public static Font createFont(File fontFile)
      根据文件创建字体 首先尝试创建Font.TRUETYPE_FONT字体,此类字体无效则创建Font.TYPE1_FONT
      Parameters:
      fontFile - 字体文件
      Returns:
      Font
    • createFont

      public static Font createFont(InputStream fontStream)
      根据文件创建字体 首先尝试创建Font.TRUETYPE_FONT字体,此类字体无效则创建Font.TYPE1_FONT
      Parameters:
      fontStream - 字体流
      Returns:
      Font
    • getDimension

      public static Dimension getDimension(FontMetrics metrics, String text)
      获得字体对应字符串的长宽信息
      Parameters:
      metrics - FontMetrics
      text - 字符串
      Returns:
      长宽信息
    • getRectangle

      public static Rectangle2D getRectangle(String text, Font font)
      获取font的样式应用在str上的整个矩形
      Parameters:
      text - 字符串,必须非空
      font - 字体,必须非空
      Returns:
      Rectangle2D