Class BackgroundRemoval

java.lang.Object
com.luna.common.img.BackgroundRemoval

public class BackgroundRemoval extends Object

图片背景识别处理、背景替换、背景设置为矢量图

根据一定规则算出图片背景色的RGB值,进行替换

2020-05-21 16:36

Author:
Dai Yuanchuan
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static String[]
    目前暂时支持的图片类型数组 其他格式的不保证结果
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    areColorsWithinTolerance(Color color1, Color color2, int tolerance)
    判断颜色是否在容差范围内 对比两个颜色的相似度,判断这个相似度是否小于 tolerance 容差值
    static boolean
    areColorsWithinTolerance(Color color1, Color color2, Color tolerance)
    判断颜色是否在容差范围内 对比两个颜色的相似度,判断这个相似度是否小于 tolerance 容差值
    backgroundRemoval(BufferedImage bufferedImage, Color override, int tolerance)
    背景移除 图片去底工具 将 "纯色背景的图片" 还原成 "透明背景的图片" 将纯色背景的图片转成矢量图 取图片边缘的像素点和获取到的图片主题色作为要替换的背景色 再加入一定的容差值,然后将所有像素点与该颜色进行比较 发现相同则将颜色不透明度设置为0,使颜色完全透明.
    backgroundRemoval(ByteArrayOutputStream outputStream, Color override, int tolerance)
    背景移除 图片去底工具 将 "纯色背景的图片" 还原成 "透明背景的图片" 将纯色背景的图片转成矢量图 取图片边缘的像素点和获取到的图片主题色作为要替换的背景色 再加入一定的容差值,然后将所有像素点与该颜色进行比较 发现相同则将颜色不透明度设置为0,使颜色完全透明.
    static boolean
    backgroundRemoval(File input, File output, int tolerance)
    背景移除 图片去底工具 将 "纯色背景的图片" 还原成 "透明背景的图片" 将纯色背景的图片转成矢量图 取图片边缘的像素点和获取到的图片主题色作为要替换的背景色 再加入一定的容差值,然后将所有像素点与该颜色进行比较 发现相同则将颜色不透明度设置为0,使颜色完全透明.
    static boolean
    backgroundRemoval(File input, File output, Color override, int tolerance)
    背景移除 图片去底工具 将 "纯色背景的图片" 还原成 "透明背景的图片" 将纯色背景的图片转成矢量图 取图片边缘的像素点和获取到的图片主题色作为要替换的背景色 再加入一定的容差值,然后将所有像素点与该颜色进行比较 发现相同则将颜色不透明度设置为0,使颜色完全透明.
    static boolean
    backgroundRemoval(String inputPath, String outputPath, int tolerance)
    背景移除 图片去底工具 将 "纯色背景的图片" 还原成 "透明背景的图片" 将纯色背景的图片转成矢量图 取图片边缘的像素点和获取到的图片主题色作为要替换的背景色 再加入一定的容差值,然后将所有像素点与该颜色进行比较 发现相同则将颜色不透明度设置为0,使颜色完全透明.
    static String
    getMainColor(BufferedImage bufferedImage)
    获取图片大概的主题色 循环所有的像素点,取出出现次数最多的一个像素点的RGB值
    static String
    获取图片大概的主题色 循环所有的像素点,取出出现次数最多的一个像素点的RGB值
    static String
    获取图片大概的主题色 循环所有的像素点,取出出现次数最多的一个像素点的RGB值
    static Color
    十六进制颜色码转RGB颜色值

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • IMAGES_TYPE

      public static String[] IMAGES_TYPE
      目前暂时支持的图片类型数组 其他格式的不保证结果
  • Constructor Details

    • BackgroundRemoval

      public BackgroundRemoval()
  • Method Details

    • backgroundRemoval

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

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

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

      public static Color hexToRgb(String hex)
      十六进制颜色码转RGB颜色值
      Parameters:
      hex - 十六进制颜色码
      Returns:
      返回 RGB颜色值
    • areColorsWithinTolerance

      public static boolean areColorsWithinTolerance(Color color1, Color color2, int tolerance)
      判断颜色是否在容差范围内 对比两个颜色的相似度,判断这个相似度是否小于 tolerance 容差值
      Parameters:
      color1 - 颜色1
      color2 - 颜色2
      tolerance - 容差值
      Returns:
      返回true:两个颜色在容差值之内 false: 不在
    • areColorsWithinTolerance

      public static boolean areColorsWithinTolerance(Color color1, Color color2, Color tolerance)
      判断颜色是否在容差范围内 对比两个颜色的相似度,判断这个相似度是否小于 tolerance 容差值
      Parameters:
      color1 - 颜色1
      color2 - 颜色2
      tolerance - 容差色值
      Returns:
      返回true:两个颜色在容差值之内 false: 不在
    • getMainColor

      public static String getMainColor(String input)
      获取图片大概的主题色 循环所有的像素点,取出出现次数最多的一个像素点的RGB值
      Parameters:
      input - 图片文件路径
      Returns:
      返回一个图片的大概的色值 一个16进制的颜色码
    • getMainColor

      public static String getMainColor(File input)
      获取图片大概的主题色 循环所有的像素点,取出出现次数最多的一个像素点的RGB值
      Parameters:
      input - 图片文件
      Returns:
      返回一个图片的大概的色值 一个16进制的颜色码
    • getMainColor

      public static String getMainColor(BufferedImage bufferedImage)
      获取图片大概的主题色 循环所有的像素点,取出出现次数最多的一个像素点的RGB值
      Parameters:
      bufferedImage - 图片流
      Returns:
      返回一个图片的大概的色值 一个16进制的颜色码