java的面向AI编程系列文章目录
JavaSpringBoot专集 | 框架技术及难度系数(五星制) |
---|---|
java的面向AI编程-InsCode-批量转PNG文件为JPG过滤掉小图标 | 难度★✫✰✰✰ |
java的面向AI编程-读一个代码文件换里面的代码行–【InsCodeAI编程】 | – |
c#的面向AI编程-批量改文件名的救赎–【InsCodeAI编程】 | – |
c#的面向AI编程-批量处理JPG图片为固定宽度 | – |
– | – |
– | – |
– | – |
SpringBoot 的项目如何运行–JSB系列之004 | 难度★✫✰✰✰ |
本系列校训
互相伤害互相卷,玩命学习要你管,天生我才必有用,我命由我不由天!
有了AI牛翻天,作业难度全一般,发财小手动一动,关注收藏点一点。
毕设(作业)的技术铺垫
语言选择 | 收录专辑链接 | 卷的程度 |
---|---|---|
C | 张雪峰推荐选择了计算机专业之后-在大学期间卷起来-【大学生活篇】 | ★★★✫✰ |
JAVA | 黑马B站视频JAVA部分的知识范围、学习步骤详解 | ★★★★★ |
JAVAWEB | 黑马B站视频JAVAWEB部分的知识范围、学习步骤详解 | ★★★★★ |
SpringBoot | SpringBoot知识范围-学习步骤【JSB系列之000】 | ★★★★★ |
微信小程序 | 详细解析黑马微信小程序视频–【思维导图知识范围】 | ★★★✰✰ |
python | 详细解析python视频选择–【思维导图知识范围】 | ★★✫✰✰ |
php | PHP要怎么学–【思维导图知识范围】 | ★★★✫✰ |
环境及工具:
本系列环境
环境 | win11 |
---|---|
工具 | idea 2017/idea 2018 |
jdk | 1.8 |
数据库 | 无 |
maven | 无 |
项目导入方式 | 打开目录 |
数据库前端工具 | 无 |
使用AI | InsCode |
作业说明
AI一般不能生成一大堆的文件,做项目,但是在某个算法,某个方法的处理上,那基本上就是完爆初学者了。甚至我发现,对于我一个编程20多年的老手,我也依赖上这个东西了。毕竟老程序员多的只是经验,百度找东西快,知道过滤网上搬的那些一眼就看出完全不能运行的文章的代码,但是AI完全不用担心这些。
现在不是研究AI给初学者带来了多大的冲击,而是怎么用AI更好的完成自己的工作。
甚至现在看到了这样的文章
《AI在招聘领域有哪些应用场景?》
《精通“微表情&面相学“AI面试官已就位 请接招》
HR都开始玩AI了,那你做为程序员或准程序员,你还不会AI你怎么破局呢?
会不会发展到面试官只管问问题,天南海北的问就行了,屋子里安有摄像头,然后,面试完直接问AI,这个应试者技术打多少分,素质打多少分?反应能力打多少分,抗压能力打多少分?
AI可以一票否决应试者。会不会在不远的将来就真的实现?
总体功能
好了,我来说一下这个作业的功能。
就是把一些项目目录下的PNG图片转成JPG图片(不包括那些小图标的PNG)
向AI发招
AI 再一次的给出了linux 命令行。
给它转转向。
全部代码如下:
package javaBase;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class FindPngFiles {
public static void main(String[] args) {
String path = "G:\\downloads\\php1-18"; // 要查找的目录路径
List<String> pngFiles = new ArrayList<String>();
findPngFiles(path, pngFiles);
for (String file : pngFiles) {
System.out.println(file);
}
}
private static void findPngFiles(String path, List<String> pngFiles) {
File dir = new File(path);
File[] files = dir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
findPngFiles(file.getAbsolutePath(), pngFiles);
} else {
if (file.getName().toLowerCase().endsWith(".png")) {
pngFiles.add(file.getAbsolutePath());
}
}
}
}
验证一下:
很完美的就跑起来了。
然后,我再向AI提一个小函数。
把这个函数套到项目里。
全部代码如下:
package javaBase;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class FindPngFiles {
public static void main(String[] args) {
String path = "G:\\downloads\\php1-18"; // 要查找的目录路径
List<String> pngFiles = new ArrayList<String>();
findPngFiles(path, pngFiles);
for (String file : pngFiles) {
System.out.println(file);
}
}
private static void findPngFiles(String path, List<String> pngFiles) {
File dir = new File(path);
File[] files = dir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
findPngFiles(file.getAbsolutePath(), pngFiles);
} else {
if (file.getName().toLowerCase().endsWith(".png")) {
System.out.println(file.getAbsolutePath());
if (getPngWidth(file.getAbsolutePath())>200)
pngFiles.add(file.getAbsolutePath());
}
}
}
}
private static int getPngWidth(String path) {
int width = 0;
try {
BufferedImage image = ImageIO.read(new File(path));
width = image.getWidth();
} catch (IOException e) {
e.printStackTrace();
}
return width;
}
}
不过,出现了一个异常,
由于 这个异常出现的N多的图片的中间,所以,我们先做一个判断,跳过去,让程序顺畅跑下来。
private static int getPngWidth(String path) {
int width = 0;
try {
BufferedImage image = ImageIO.read(new File(path));
if (image==null) return 0;
else {width = image.getWidth();}
} catch (IOException e) {
e.printStackTrace();
}
return width;
}
好了,找到了几百张图片,
那么,我们需要的是转成JPG,然后,删掉PNG
先一个个的向AI问
然后,自己改成方法,这一点小功能就不麻烦AI了。
private static void pngtojpg(String pngFilename )
{
try {
pngFilename = pngFilename.toLowerCase();
File pngfile = new File(pngFilename);
if (pngfile==null) return;
String jpgFileName = pngFilename.substring(0,pngFilename.lastIndexOf(".png")) +".jpg";
System.out.println(jpgFileName);
// 读取PNG图片
BufferedImage pngImage = ImageIO.read(pngfile);
// 转换成JPG图片
BufferedImage jpgImage = new BufferedImage(pngImage.getWidth(), pngImage.getHeight(), BufferedImage.TYPE_INT_RGB);
jpgImage.createGraphics().drawImage(pngImage, 0, 0, java.awt.Color.WHITE, null);
// 保存JPG图片
ImageIO.write(jpgImage, "jpg", new File(jpgFileName));
pngfile.delete();
} catch (IOException e) {
e.printStackTrace();
}
}
然后,在之前的main里套上这个函数。
public static void main(String[] args) {
String path = "G:\\downloads\\php1-18"; // 要查找的目录路径
List<String> pngFiles = new ArrayList<String>();
findPngFiles(path, pngFiles);
for (String file : pngFiles) {
pngtojpg(file);
}
}
放心的运行一下。
经过了漫长的几分钟之后。。
程序好象是成功的完成了??
用系统自带的文件查找看一下。
看这文件大小切的这么准,就知道。这个事成了
这个就是项目里的日常算法,当然,放在你的作业里,绝绝对对的是核心代码了!
什么是核心代码:
应用软件的核心代码是指这个程序最关键部分的代码。例如WinRAR,它的核心代码就是压缩算法部分,而诸如用户界面、操作系统移植等部分就无足轻重了。
商城类的核心代码是指业务层的代码,比如你商城的核心代码就是:商品、购物车、创建订单、支付这些代码就是核心代码。
作为程序员,我们经常需要看懂别人的代码。特别是在开源社区中,我们需要理解许多优秀的开源项目的代码。而在Gitee这样的代码托管平台上,我们如何快速有效地看懂别人的代码呢?本文将为大家介绍一些方法。
1.阅读README和项目介绍
在Gitee上,许多开源项目都会有自己的README文件或项目介绍。这些文件一般会介绍项目的背景、功能、使用方法等内容,可以帮助我们快速了解这个开源项目的基本情况。如果我们能够从这些文件中找到与自己相关的内容,就可以快速入手这个开源项目的代码。
2.了解项目结构和代码组织
在阅读代码之前,我们需要先了解这个开源项目的代码结构和代码组织方式。通常,开源项目会将不同的功能模块封装到不同的代码文件中,并按照一定的目录结构组织起来。如果我们能够了解这个开源项目的代码组织方式,就能更加快速地找到所需的代码。
3.利用IDE和工具
IDE和一些代码阅读工具可以帮助我们更快速、更高效地阅读代码。例如,Java开发者可以使用Eclipse或IntelliJ IDEA这样的IDE,可以快速打开代码文件、查看类、方法和变量等信息。另外,一些代码阅读工具,如Source Insight、CodeCompare等,可以帮助我们更方便地查看代码的结构和关系,以及快速跳转到相关代码。
4.关注代码注释和文档
良好的代码注释和文档可以帮助我们更快速地理解代码。因此,在阅读别人的代码时,我们可以将注意力放在代码注释和文档上。有些开源项目会提供详细的文档,有些则注重代码注释。如果我们能够针对代码注释和文档有一个系统的阅读和理解,就能更快速地掌握别人的代码。
5.跑通测试和运行项目
如果我们想更深入地了解别人的代码,可以试着跑通相关的测试,或者直接运行这个开源项目。通过跑测试和运行项目,我们可以更加直观地了解代码的实现细节和具体的业务逻辑。
总结:
以上就是在Gitee上快速理解他人代码的一些方法,希望对大家有所帮助。当然,阅读代码是一件需要耐心和细心的事情,需要我们多花一点时间和心思。只有沉下心来,慢慢阅读每一行代码,才能真正理解它们的含义和作用。
总结
就一句,AI太强了,真的太强了。
以前的学习的人,没有那么正规,但是潜下心写代码。现在的人呢?除了各种网络的BBLL,真心写代码的还能找不到工作?就算你不会写,但是你看了那么多的视频,用AI这么好玩的事情,还不赶紧试一试?
论文参考
《基于jsp的塞北村镇旅游网站的设计与实现–【毕业论文】》
https://blog.csdn.net/dearmite/article/details/131962993
配套资源
java的面向AI编程-InsCode-太牛了–【课程设计】
https://download.csdn.net/download/dearmite/88237303