07、利用 Graphics2D 在海报上绘制个人专属二维码
有了前面绘制海报封面的经验,绘制二维码就变得轻而易举了。
// 二维码
File qrcodeFile = FileUtil.read("qrcode_", ".jpg", "default_qrcodeimg.jpg");
qrcodeFile.deleteOnExit();
BufferedImage qrcodeImage = ImageIO.read(qrcodeFile);
// 二维码起始坐标
int qrcode_x = bgImage.getWidth() - qrcodeImage.getWidth() - MARGIN;
int qrcode_y = bgImage.getHeight() - qrcodeImage.getHeight() - MARGIN;
graphics2dPoster.getGraphics2d().drawImage(qrcodeImage, qrcode_x, qrcode_y, qrcodeImage.getWidth(),
qrcodeImage.getHeight(), null);
此时的海报效果如下图所示。
是不是感觉海报的左下角比较空白,整体的对称性不够自然,那就在左下角追加一些二维码的描述文本吧。
graphics2d.setColor(new Color(71, 71, 71)); Font font = new Font(USE_FONT_NAME, Font.PLAIN, 22); graphics2d.setFont(font); FontDesignMetrics metrics = FontDesignMetrics.getMetrics(graphics2d.getFont()); graphics2d.drawString("沉默王二", MARGIN, bgImage.getHeight() - MARGIN - metrics.getHeight() * 2); graphics2d.drawString("一个幽默的程序员", MARGIN, bgImage.getHeight() - MARGIN - metrics.getDescent());
此时的海报效果如下图所示。
08、使用 Swing 构建图形化界面
Swing 是一个用于 Java GUI 编程(图形界面设计)的工具包(类库);换句话说,Java 之所以可以用来开发带界面的 PC 软件,就是因为 Swing 的存在。
Swing 使用纯粹的 Java 代码来模拟各种控件,没有使用本地操作系统的内在方法,所以 Swing 是跨平台的。也正是因为 Swing 的这种特性,人们通常把 Swing 控件称为轻量级控件。
Eclipse 默认是不支持可视化的 Swing 编程的,但 Eclipse 的插件市场上有这样一个好插件——WindowBuilder,使用它可以大幅度地降低开发难度,迅速地提升开发效率。
下载地址:https://marketplace.eclipse.org/content/windowbuilder
可直接拖拽到 Eclipse 进行安装,如下图。
注意,Eclipse 的版本要求为:
2018-09 (4.9), Photon (4.8), Oxygen (4.7), Neon (4.6), 2018-12 (4.10), 2019-03 (4.11)
拖拽到 Eclipse 后的效果如下:
安装完成后,会提醒你重启 Eclipse。
温馨提示:安装的过程大约持续 3 分钟的时间,中间可能会失败,重试几次即可。不用担心,Eclipse 会智能地保存失败前的进度。
安装成功后,就可以使用可视化工具设计界面了
09、将项目打成 jar 包发行
在将应用程序进行打包时,使用者都希望开发者只提供一个单独的文件,而不是包含大量源码的文件夹。jar 包存在的目的正源于此。
将项目打成 jar 包也很简单,在 Eclipse 中,可依次右键项目→Export→Runnable JAR file。你将会看到以下界面。
选择 main 方法所在类,指定导出目标,选择 Copy required libraries 选项,点击「Finish」即可。在指定的目录下可找到生成的 jar 包文件。
10、运行 jar 包,填写必要信息后生成海报
如果电脑上安装了 Java 的运行环境,双击该 jar 包文件就可以运行。运行后的界面,如下图所示。可以填写中文、英文、海报封面路径,然后点击按钮生成海报。
PS:为了便于大家的学习,我已经将源码放在了 GitHub 上,地址如下。
https://github.com/qinggee/poster/tree/jinshanciba
赶快去 star 吧!