学以致用是学习的目的,

不然后学了就放了那是在浪费生命。

同样,

我们学习编程也要解决现实中的出现的问题。

python绘图添加汉字 python制图里加文字_python绘图添加汉字

在街头我们常会看到这样一种挑战,在本子上从1一直写到1000,能保证连续不出错,就可以获得奖金。挑战者不少,但实际能获奖金者就寥寥无几了,因为这样重复性很强的工作,人们很难集中注意力将其一字不差的给完成。 但这要是交给计算机来做,能写到他倒闭!

for(int i =1;i<1001;i++){
System.out.println(i);
}

现在以上的小例子并不能给我们带来奖金,它只能告诉我们,计算机的优势在于可以胜任重复性的工作!如下面这个需求:

要给每个人发张贺卡,除了名字不一样外,其他的都一样。

如果没有程序的话,我们会怎么做?

我们会打开word, 或者别的编辑工具,然后开始替换名字,然后一张张的保存。

python绘图添加汉字 python制图里加文字_java_02

我就一直在想,

人在电脑上所能完成的,

我们用程序也一定可以完成!

那面上面我们人执行的步骤拆解开来,

我们需要电脑按以下流程来走:

1.读取到我们的背景图

2.循环我们的名单列表

3.对每一个名字拼出欢迎语

4.把拼好的欢迎语放到背景图指定位置

5.输出新的图片

python绘图添加汉字 python制图里加文字_python绘图添加汉字_03

接着我们上期用maven创建java工程,

(链接)

在创建好的工程下,

我们把 背景图放到 resources 目录下,

如果 没有可以新建

python绘图添加汉字 python制图里加文字_背景图_04

python绘图添加汉字 python制图里加文字_java_05

然后在App.java里面开始按照我们上面整理的顺序写代码

public class App
{
    public static void main( String[] args )
    {
        //模拟名单
        List<String> names = Arrays.asList("小刀","花音");
 
        try {
            for (String name : names) {
                //读取背景图
                InputStream inputStream = App.class.getResourceAsStream("/background.png");
                BufferedImage image = ImageIO.read(inputStream);
                Graphics2D graphics = image.createGraphics();
                //设置字体
                Font font=new Font("AaFangMeng (Non-Commercial Use)",Font.PLAIN,76);
                graphics.setColor(Color.black);
                graphics.setFont(font);
                graphics.drawString("亲爱的"+name+"同学:",30,1450);
 
                String fileName = name+".png";
                //保存成图片
                ImageIO.write(image, "PNG", new File(fileName));
            }
 
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

运行之后,就能看到输出的两张图片



python绘图添加汉字 python制图里加文字_App_06

小伙伴们可以自己试试哦~


 
                      文字:微笑的小小刀

排版:花音