【java/image】将指定路径下所有的png图片进行反色处理
【需求】
在桌面上有若干png图片,是使用截图软件FSCapture7.6对通达信的K线图截图而得,在打印这些K线图前,需要将它们进行反色处理。
【代码】
package test240313; import java.awt.image.BufferedImage; import java.awt.image.ByteLookupTable; import java.awt.image.LookupOp; import java.io.File; import javax.imageio.ImageIO; /** * 将指定路径下所有的png文件进行反色处理 * @author ufo * */ public class InverseAllPngs { public static void main(String[] args) throws Exception{ // 获得指定路径下的所有png文件 File folder=new File("C:\\\\Users\\\\ufo\\\\Desktop\\\\"); File[] files=folder.listFiles(); for(File f:files) { if(f.isFile()) { String fname=f.getPath(); if(fname.toLowerCase().endsWith(".png")) { // 读原文件 BufferedImage img = ImageIO.read(f); // 得到反色后的图像 BufferedImage inversedImg = inverseColor(img); // 写入原文件 File outFile = new File(fname); ImageIO.write(inversedImg, "png", outFile); } } } } /** * 返回反色处理后的新图像 * @param image * @return */ private static BufferedImage inverseColor(BufferedImage image) { byte reverse[] = new byte[256]; for (int j = 0; j < 256; j++) { reverse[j] = (byte) (255 - j); } ByteLookupTable blut = new ByteLookupTable(0, reverse); BufferedImage bimg = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB); LookupOp lop = new LookupOp(blut, null); lop.filter(image, bimg); return bimg; } }
【参考资料】
https://www.jianshu.com/p/6b2bbf95aee0
https://blog.csdn.net/pengxiaozhong/article/details/125910853
END
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)