2024年最全java实现批量去除图片水印,准备Java面试

本次面试答案,以及收集到的大厂必问面试题分享:

字节跳动超高难度三面java程序员面经,大厂的面试都这么变态吗?

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

//递归调用

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 it = ImageIO.getImageWritersByFormatName(type);

ImageWriter writer = it.next();

File f = new File(dstFile);

f.getParentFile().mkdirs();

ImageOutputStream ios = ImageIO.createImageOutputStream(f);

writer.setOutput(ios);

Kafka进阶篇知识点

image

Kafka高级篇知识点

image

44个Kafka知识点(基础+进阶+高级)解析如下

image

由于篇幅有限,小编已将上面介绍的**《Kafka源码解析与实战》、Kafka面试专题解析、复习学习必备44个Kafka知识点(基础+进阶+高级)都整理成册,全部都是PDF文档**

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录**

需要这份系统化的资料的朋友,可以点击这里获取

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java可以通过使用图像处理库来去除图片水印。下面是去除图片水印的一般步骤: 1. 加载图片:使用Java的ImageIO类从本地文件或URL加载图片。 2. 创建副本:使用Java的BufferedImage类创建原始图片的副本。 3. 获取图像的像素:使用Java的getRGB()方法获取图像的每个像素。 4. 去除水印:通过修改图像的像素值来去除水印。可以通过提取图像的边缘或使用图像修复算法来做到这一点。 5. 保存图片:使用Java的ImageIO类将处理后的图像保存到本地文件或URL。 以下是一个可以参考的Java代码示例: ```java import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class RemoveWatermark { public static void main(String args[])throws IOException{ // Load image BufferedImage originalImage = ImageIO.read(new File("original.jpg")); // Create a copy of the image BufferedImage newImage = new BufferedImage(originalImage.getWidth(), originalImage.getHeight(), BufferedImage.TYPE_INT_RGB); newImage.createGraphics().drawImage(originalImage, 0, 0, null); // Remove watermark by modifying pixels for (int y = 0; y < newImage.getHeight(); y++) { for (int x = 0; x < newImage.getWidth(); x++) { // Modify pixel value here } } // Save new image File outputFile = new File("new.jpg"); ImageIO.write(newImage, "jpg", outputFile); } } ``` 在上面的代码示例中,您需要编写代码来修改图像的像素值,以去除水印。这可能需要一些图像处理技术和算法,具体取决于水印的大小和位置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值