java实现批量去除图片水印

直接上代码

package com.example.picutil;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageOutputStream;
import javax.net.ssl.HttpsURLConnection;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;/*** 去掉水印的工具类*/
public class ImageConverter {private static List<File> fileList = new ArrayList<File>();public static void main(String[] args) {//图片所在的根目录 , 图片去除水印后的存储目录convertAllImages("D:\\images\\1.png", "D:\\images\\demo1\\1.png"); //支持批量去除图片水印
// convertAllImages("D:\\images", "D:\\images");}private static void convertAllImages(String dir, String saveDir) {File dirFile = new File(dir);File saveDirFile = new File(saveDir);dir = dirFile.getAbsolutePath();saveDir = saveDirFile.getAbsolutePath();loadImages(new File(dir));for (File file : fileList) {String filePath = file.getAbsolutePath();String dstPath = saveDir + filePath.substring(filePath.indexOf(dir) + dir.length(), filePath.length());System.out.println("converting: " + filePath);replaceColor(file.getAbsolutePath(), dstPath);}}public static void loadImages(File f) {if (f != null) {if (f.isDirectory()) {File[] fileArray = f.listFiles();if (fileArray != null) {for (int i = 0; i < fileArray.length; i++) {
//递归调用loadImages(fileArray[i]);}}} else {String name = f.getName();if (name.endsWith("png") || name.endsWith("jpg")) {fileList.add(f);}}}}private static void replaceFolderImages(String dir) {File dirFile = new File(dir);File[] files = dirFile.listFiles(new FileFilter() {public boolean accept(File file) {String name = file.getName();if (name.endsWith("png") || name.endsWith("jpg")) {return true;}return false;}});for (File img : files) {replaceColor(img.getAbsolutePath(), img.getAbsolutePath());}}private static void replaceColor(String srcFile, String dstFile) {try {Color color = new Color(255, 195, 195);replaceImageColor(srcFile, dstFile, color, Color.WHITE);} catch (IOException e) {e.printStackTrace();}}public static void replaceImageColor(String file, String dstFile, Color srcColor, Color targetColor) throws IOException {URL http;if (file.trim().startsWith("https")) {http = new URL(file);HttpsURLConnection conn = (HttpsURLConnection) http.openConnection();conn.setRequestMethod("GET");} else if (file.trim().startsWith("http")) {http = new URL(file);HttpURLConnection conn = (HttpURLConnection) http.openConnection();conn.setRequestMethod("GET");} else {http = new File(file).toURI().toURL();}BufferedImage bi = ImageIO.read(http.openStream());if(bi == null){return;}//Color wColor = new Color(255, 255, 255);//白色Color wColor = new Color(238, 243, 249);//浅灰色for (int i = 0; i < bi.getWidth(); i++) {for (int j = 0; j < bi.getHeight(); j++) {
//System.out.println(bi.getRGB(i, j));int color = bi.getRGB(i, j);Color oriColor = new Color(color);int red = oriColor.getRed();int greed = oriColor.getGreen();int blue = oriColor.getBlue();
//粉色if (greed < 190 || blue < 190) {} else {
//去掉粉色水印(粉色替换为白色)
// if (red == 255 && greed > 180 && blue > 180) {
// bi.setRGB(i, j, wColor.getRGB());
// }
//去掉灰色水印(灰色替换为白色)
// if (red == 229 && greed == 229 && blue == 229) {
// bi.setRGB(i, j, wColor.getRGB());
// }
//去掉浅灰色水印(灰色替换为白色或替换为浅灰色)if (red >170 && greed > 170 && blue > 170) {bi.setRGB(i, j, wColor.getRGB());}}}}String type = file.substring(file.lastIndexOf(".") + 1, file.length());Iterator<ImageWriter> it = ImageIO.getImageWritersByFormatName(type);ImageWriter writer = it.next();File f = new File(dstFile);f.getParentFile().mkdirs();ImageOutputStream ios = ImageIO.createImageOutputStream(f);writer.setOutput(ios);writer.write(bi);bi.flush();ios.flush();ios.close();}

java实现批量去除图片水印相关推荐

  1. Java使用ffmpeg去除图片水印

    /*** 去除图片水印*/@Testpublic void deleteLogo(){/*** 对delogo滤镜的说明:- x,y:水印的左上方坐标- w,h: 水印的宽高- show: 可选参数, ...

  2. 快速批量去除图片水印方法大全~~

    原文地址:http://blog.163.com/simonyao_cool/blog/static/16512555720107311858809/ 去水印是不复杂啦,可几千页下来,自己用橡皮抹会抹 ...

  3. 转载_纯Java代码批量去除图片文字水印

    http://www.oicqzone.com/pc/2017062023844.html 问题 做习题的小伙伴在做试题的时候需要把Word文档中的习题切图制作成试题,由于没注意到Word转出的图片上 ...

  4. java去除图片水印的解决办法

    原文地址:http://www.oicqzone.com/pc/2017062023844.html [color=red]去除水印: 其实就是把水印的颜色替换为背景色(ARGB) /** * * 分 ...

  5. 基于多元线性回归去除图片水印(Java版)

    前提 采集的图片有淡淡的水印,为了避免不必要的麻烦,需要淡化或去除水印.图片如下所示: Java自带的工具可以对图片指定位置(x,y)的颜色(r,g,b)进行替换.如果图片上下左右颜色一致,则可进行颜 ...

  6. 图片怎么去水印?如何批量无痕去除图片水印

    网址:图片怎么去水印https://www.shuiyinyun.com/inpaint-image.html 批量去图片水印步骤: 效果图:

  7. 怎么去水印不破坏原图?这4个方法,无痕去除图片水印

    平时在网上下载图片的时候,经常会有带水印的情况,怎么才能去掉图片的水印呢?今天就给大家分享4个好用的图片去水印工具,操作简单使用方便,主要是去水印效果好,去水印后几乎看不出水印痕迹! 1.imgcle ...

  8. 批量去图片水印神器,小白看完就会!

    图片好看归好看,美中不足的就是,有水印.这个问题在大家看来,是不是常有的事?看到这些漂亮的图片都有严重影响美观的水印,看上去很不爽吧?没错,小编也是很不爽! 今天我们这里要讲到的是,如何批量去除图片上 ...

  9. 去除图片水印_只需一键,即可快速去除图片水印!如此简单的方法,谁不知谁吃亏...

    现在有很多小伙伴都会到网上找一些好看的图片保存下来,但是很多时候我们找到的图片都是带有水印的,虽然水印很小,但是看起来也是怪怪的.别担心,今天小编将分享几个简单又好用的图片去水印方法给大家,有需要的小 ...

  10. 【批量去除图片的背景】

    有一个需求,需要批量去除图片的背景,在网上搜到下面这个方法:[python]backgroundremover 去除背景_LiuPig刘皮哥的博客-CSDN博客GitHubhttps://github ...

最新文章

  1. R语言可视化绘图基础知识详解
  2. 从自监督学习主流方法、最新工作进展,看未来前景研究方向
  3. 如何用python画圆形的代码-简单实现python画圆功能
  4. Silverlight学习之——事件编程
  5. python判断是否是完数_python判断是否完数
  6. 写 Python 爬虫 5 年,复制粘贴一直是我赖以生存的核心技能,直到我看到这些腾讯阿里大佬们的技术公众号,太强了...
  7. android p正式版,国内首家!一加正式推送Android P正式版
  8. Spring Boot Learning(模版引擎)
  9. java 变量初始化_浅谈Java变量的初始化顺序详解
  10. scala的数值类型(三)
  11. socket 例子 java_java socket例子
  12. 【答辩问题】计算机专业本科毕业设计答辩的一般程序
  13. [原创]Linux实现服务延迟启动
  14. HTML5标准学习 – 简介
  15. 注册机无法运行,显示系统资源不足,无法完成请求的服务
  16. 如何利用魔棒工具抠图_10秒教你如何用PS魔棒工具抠图
  17. 吉他音阶训练——问题解答
  18. C++_008_数据结构_线性表_普通线性表
  19. python面向对象编程指南([美stevenflott_Python面向对象编程指南 ([美]StevenFLott洛特) 中文_IT教程网...
  20. 文本分析简历项目收集-----机器学习(仅供参考)

热门文章

  1. (已解决)windows2020卸载office2013(安装程序包语言不受系统支持)
  2. python 打开xls文件写数据
  3. 思维题:三个箱子,一个只装苹果,一个只装橙,另一个装苹果和橙,请问?
  4. Java基础-数组01
  5. MyEclipse 2016 的破解激活
  6. 基于PHP的学生量化管理系统
  7. 35种神奇的心理效应
  8. 【论文阅读】【三维目标检测】Pseudo-LiDAR from Visual Depth Estimation
  9. 微信 css3动画失效,css3 动画效果在微信中无效
  10. 切片器可以设置日期格式?_如何分秒必争--浅淡时间切片器