实战!拿着造假的简历领了人生中第一个需求

简介:   最近有一个朋友,拿着包装的简历去到了公司干货,虽然不是一个大厂,但是也领到了自己人生中第一个需求,虽然说这个需求我看起来不是很难,但是对于我朋友那种自学转行的人来说还是有一定难度的,这个需求我们来看看是什么需求把,其实也很简单:利用java代码根据文字生成随机浅色背景的图片,而且字体也要可变换。

🎀 前言


   最近有一个朋友,拿着包装的简历去到了公司干货,虽然不是一个大厂,但是也领到了自己人生中第一个需求,虽然说这个需求我看起来不是很难,但是对于我朋友那种自学转行的人来说还是有一定难度的,这个需求我们来看看是什么需求把,其实也很简单:利用java代码根据文字生成随机浅色背景的图片,而且字体也要可变换


   我滴乖乖,这个需求给一个刚进来公司的人直接就给👨整不会了。那么接下来看看我是怎么做这个需求的吧,其实就几个关键字:根据文字生成图片、字体可变、浅色背景


💎代码


   话不多说,我们直接开始撸码。首先我们先在D盘创建一个name.txt的文件,我们等会需要将这里面的文字读出来生成图片。


1.JPG


读取文件中的名字

   接下来我们要写一个方法来读取文件中的名字。我们利用一个InputStreamReader去读取,然后返回一个List。


/**
    * @Description: 将文件中的文字一行一行读取出来并存放在List中返回
    * @Param: [filename] 文件名
    * @return java.util.List<java.lang.String>
    */
public static List<String> readFileByLine(String filename) throws IOException, FileNotFoundException {
    List<String> stringList=new ArrayList<String>();
    File file=new File(filename);
    InputStreamReader isr=new InputStreamReader(new FileInputStream(file),"UTF-8");
    BufferedReader reader=new BufferedReader(isr);
    String tmp;
    while((tmp=reader.readLine())!=null){
        stringList.add(tmp);
    }
    reader.close();
    return stringList;
}
复制代码

生成图片

/**
        * @Description: 生成图片的方法
        * @Param: [string] 生成图片的文字内容
        * @return void
        */
    public static void generateImg(String string) throws IOException{
        // 设置图片宽高
        int width=400;
        int height=400;
        // 设置图片的路径
        String filename="D:/"+string+".jpg";
        System.out.println(filename);
        File file=new File(filename);
        // 不需要引入外部字体
        Font font=new Font("黑体",Font.BOLD,60);
        // 引入外部字体
        //Font font =  getSelfDefinedFont("E:\PangMenZhengDaoBiaoTiTi\思源宋体.ttf");
        BufferedImage bi =new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics2D g2=(Graphics2D) bi.getGraphics();
        g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
        g2.setBackground(getRandomColor());
        g2.clearRect(0, 0, width, height);
        g2.setFont(font);
        FontMetrics fm = g2.getFontMetrics(font);
        int textWidth = fm.stringWidth(string);
        g2.setPaint(new Color(0,0,128));
        // 设置图片水平居中
        int widthX = (width - textWidth) / 2;
        // y设置高度,目前还没有研究出居中的方法
        g2.drawString(string, widthX , 220);
        ImageIO.write(bi,"jpg", file);
    }
复制代码

 

  这里需要注意的是:


  1. 我这里有两种方式,第一种是不引入外部字体,可以直接使用内置字体。
  2. 我们可以自己下载字体,然后通过绝度路径的方式进行引入。字体文件格式一定要是ttf,其他我试了一下是不生效的,还有一定要用没有版权或者可以免费商用的字体
  3. 我这里做了水平居中,但是垂直居中还没有研究出来,只可以根据实际效果自己慢慢调整。


生成浅色背景


   其实生成浅色背景我能想到的是利用rgb在一定范围内随机生成来生成一个浅色背景。


/**
    * @Description: 设置随机浅色颜色
    * @Param: []
    * @return java.awt.Color
    */
private static Color getRandomColor() {
    Random random=new Random();
    // 我这边设置了返回浅色的图片,排除了深色
    return new Color(random.nextInt(255)%(255-230+1) + 200,random.nextInt(255)%(255-230+1) + 200,random.nextInt(255)%(255-230+1) + 200);
}
复制代码


写主方法

   主体代码写完啦,接下来我们来写主方法进行测试。


String fileName="D:/name.txt";
List<String> nameList = readFileByLine(fileName);
for (int i = 0; i < nameList.size(); i++) {
    generateImg(nameList.get(i));
}
复制代码


🎉测试


2.JPG

3.JPG

 

  还可以把!嘻嘻



相关文章
No.17 “迷茫的辍学大学生,我该如何找到自己的方向?”来自B站粉丝的求助信(一)
No.17 “迷茫的辍学大学生,我该如何找到自己的方向?”来自B站粉丝的求助信
|
程序员
No.17 “迷茫的辍学大学生,我该如何找到自己的方向?”来自B站粉丝的求助信(二)
No.17 “迷茫的辍学大学生,我该如何找到自己的方向?”来自B站粉丝的求助信(二)
|
6月前
|
新能源 图形学
两千字——零基础开始打化工设计大赛——附搜集到的小白资料站、一次项目复盘
两千字——零基础开始打化工设计大赛——附搜集到的小白资料站、一次项目复盘
82 0
|
6月前
|
负载均衡 网络协议 算法
海投简历一个月无果,机遇巧合得前辈内推,五面蘑菇街终获offer
到目前为止使用Java到现在大概有两年多的时间,所以java算不上很好。刚开始投递的时候,刚辞职,也没准备笔试面试,很多东西都忘记了。所以,刚开始我并没有直接就投递蘑菇街,毕竟心里还是有一点点小害怕的。
|
区块链
No.17 “迷茫的辍学大学生,我该如何找到自己的方向?”来自B站粉丝的求助信(三)
No.17 “迷茫的辍学大学生,我该如何找到自己的方向?”来自B站粉丝的求助信(三)
|
消息中间件 Cloud Native 前端开发
记录丨阿里云校招生的成长经历
记录丨阿里云校招生的成长经历
记录丨阿里云校招生的成长经历
|
自然语言处理 网络协议 安全
大三专科实习第一个月——推荐极具有价值的小众网站
脱变从现在开始,以下文章讲述的是广度问题接下来方向将是深度的问题。
大三专科实习第一个月——推荐极具有价值的小众网站
|
机器学习/深度学习 人工智能 分布式计算
同学,你有一份来自支付宝AI学姐的面试锦囊待查收
这里有创造未来的技术,这里有蚂蚁最丰富的场景,这里有挑战也有机遇,还有为你助力的师兄师姐。此时此刻,非你莫属!期待你们的到来!
2724 0
同学,你有一份来自支付宝AI学姐的面试锦囊待查收
|
新零售 供应链 前端开发
同学,你有一份阿里前端终面官分享的校招秘籍待查收
更好的前端更好的你,阿里前端校招终面官与你分享关于校招的那些事儿。
同学,你有一份阿里前端终面官分享的校招秘籍待查收
|
SQL 机器学习/深度学习 算法
资深数据科学家教你如何在求职过程中找到心仪的工作
本文是一篇关于数据科学家岗位的求职心路历程,情真意切,给予求职过程很多的建议,对于参加秋招和社招的朋友来说,是一份不可多得的心得。
7200 0