Package com.luna.common.img
Class BackgroundRemoval
java.lang.Object
com.luna.common.img.BackgroundRemoval
图片背景识别处理、背景替换、背景设置为矢量图
根据一定规则算出图片背景色的RGB值,进行替换
2020-05-21 16:36
- Author:
- Dai Yuanchuan
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
areColorsWithinTolerance
(Color color1, Color color2, int tolerance) 判断颜色是否在容差范围内 对比两个颜色的相似度,判断这个相似度是否小于 tolerance 容差值static boolean
areColorsWithinTolerance
(Color color1, Color color2, Color tolerance) 判断颜色是否在容差范围内 对比两个颜色的相似度,判断这个相似度是否小于 tolerance 容差值static BufferedImage
backgroundRemoval
(BufferedImage bufferedImage, Color override, int tolerance) 背景移除 图片去底工具 将 "纯色背景的图片" 还原成 "透明背景的图片" 将纯色背景的图片转成矢量图 取图片边缘的像素点和获取到的图片主题色作为要替换的背景色 再加入一定的容差值,然后将所有像素点与该颜色进行比较 发现相同则将颜色不透明度设置为0,使颜色完全透明.static BufferedImage
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
getMainColor
(File input) 获取图片大概的主题色 循环所有的像素点,取出出现次数最多的一个像素点的RGB值static String
getMainColor
(String input) 获取图片大概的主题色 循环所有的像素点,取出出现次数最多的一个像素点的RGB值static Color
十六进制颜色码转RGB颜色值
-
Field Details
-
IMAGES_TYPE
目前暂时支持的图片类型数组 其他格式的不保证结果
-
-
Constructor Details
-
BackgroundRemoval
public BackgroundRemoval()
-
-
Method Details
-
backgroundRemoval
背景移除 图片去底工具 将 "纯色背景的图片" 还原成 "透明背景的图片" 将纯色背景的图片转成矢量图 取图片边缘的像素点和获取到的图片主题色作为要替换的背景色 再加入一定的容差值,然后将所有像素点与该颜色进行比较 发现相同则将颜色不透明度设置为0,使颜色完全透明.- Parameters:
inputPath
- 要处理图片的路径outputPath
- 输出图片的路径tolerance
- 容差值[根据图片的主题色,加入容差值,值的范围在0~255之间]- Returns:
- 返回处理结果 true:图片处理完成 false:图片处理失败
-
backgroundRemoval
背景移除 图片去底工具 将 "纯色背景的图片" 还原成 "透明背景的图片" 将纯色背景的图片转成矢量图 取图片边缘的像素点和获取到的图片主题色作为要替换的背景色 再加入一定的容差值,然后将所有像素点与该颜色进行比较 发现相同则将颜色不透明度设置为0,使颜色完全透明.- Parameters:
input
- 需要进行操作的图片output
- 最后输出的文件tolerance
- 容差值[根据图片的主题色,加入容差值,值的取值范围在0~255之间]- Returns:
- 返回处理结果 true:图片处理完成 false:图片处理失败
-
backgroundRemoval
背景移除 图片去底工具 将 "纯色背景的图片" 还原成 "透明背景的图片" 将纯色背景的图片转成矢量图 取图片边缘的像素点和获取到的图片主题色作为要替换的背景色 再加入一定的容差值,然后将所有像素点与该颜色进行比较 发现相同则将颜色不透明度设置为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
十六进制颜色码转RGB颜色值- Parameters:
hex
- 十六进制颜色码- Returns:
- 返回 RGB颜色值
-
areColorsWithinTolerance
判断颜色是否在容差范围内 对比两个颜色的相似度,判断这个相似度是否小于 tolerance 容差值- Parameters:
color1
- 颜色1color2
- 颜色2tolerance
- 容差值- Returns:
- 返回true:两个颜色在容差值之内 false: 不在
-
areColorsWithinTolerance
判断颜色是否在容差范围内 对比两个颜色的相似度,判断这个相似度是否小于 tolerance 容差值- Parameters:
color1
- 颜色1color2
- 颜色2tolerance
- 容差色值- Returns:
- 返回true:两个颜色在容差值之内 false: 不在
-
getMainColor
获取图片大概的主题色 循环所有的像素点,取出出现次数最多的一个像素点的RGB值- Parameters:
input
- 图片文件路径- Returns:
- 返回一个图片的大概的色值 一个16进制的颜色码
-
getMainColor
获取图片大概的主题色 循环所有的像素点,取出出现次数最多的一个像素点的RGB值- Parameters:
input
- 图片文件- Returns:
- 返回一个图片的大概的色值 一个16进制的颜色码
-
getMainColor
获取图片大概的主题色 循环所有的像素点,取出出现次数最多的一个像素点的RGB值- Parameters:
bufferedImage
- 图片流- Returns:
- 返回一个图片的大概的色值 一个16进制的颜色码
-