整体思想为:
1. 根据文字算出文字需要占用的高和宽
2. 画出画布
3. 在画布上画出文字
代码如下:
public class ImageProducerUtil {
public static void main(String[] args) throws Exception {
String rootPath = "/Users/xxx/image_test";
createImage("ssss中华人民共和国", new Font("宋体", Font.PLAIN, 100), Paths.get(rootPath, "b" + 4000 + ".png").toFile());
}
private static int[] getWidthAndHeight(String text, Font font) {
Rectangle2D r = font.getStringBounds(text, new FontRenderContext(
AffineTransform.getScaleInstance(1, 1), false, false));
int unitHeight = (int) Math.floor(r.getHeight());//
// 获取整个str用了font样式的宽度这里用四舍五入后+1保证宽度绝对能容纳这个字符串作为图片的宽度
int width = (int) Math.round(r.getWidth()) + 1;
// 把单个字符的高度+3保证高度绝对能容纳字符串作为图片的高度
int height = unitHeight + 3;
System.out.println("width:" + width + ", height:" + height);
return new int[]{width, height};
}
// 根据str,font的样式以及输出文件目录
public static void createImage(String text, Font font, File outFile)
throws Exception {
// 获取font的样式应用在str上的整个矩形
int[] arr = getWidthAndHeight(text, font);
int width = arr[0];
int height = arr[1];
// 创建图片
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_BGR);//创建图片画布
Graphics g = image.getGraphics();
g.setColor(Color.WHITE); // 先用白色填充整张图片,也就是背景
g.fillRect(0, 0, width, height);//画出矩形区域,以便于在矩形区域内写入文字
g.setColor(Color.black);// 再换成黑色,以便于写入文字
g.setFont(font);// 设置画笔字体
g.drawString(text, 0, font.getSize());// 画出一行字符串
g.drawString(text, 0, 2 * font.getSize());// 画出第二行字符串,注意y轴坐标需要变动
g.dispose();
ImageIO.write(image, "png", outFile);// 输出png图片
}
}
分享到:
相关推荐
在本项目中,我们关注的是如何将EMF图片转换为PNG格式,这通常涉及到图像处理和编程技术。`freehep`是一个开源的Java库,专门用于2D图形和图像处理,其中包括了将EMF转换为其他格式的功能。`freehep`库是由Heiko ...
在Java编程领域,将文字转换为图片是一种常见的需求,它广泛应用于验证码生成、文本水印、数据可视化等领域。本文将详细讲解如何利用Java实现这一功能,主要涉及以下几个知识点: 1. **Graphics2D API** Java中的`...
接着,可以使用`BitmapEncoder`将BitMatrix转换为图像格式,如PNG。最后,可以利用Java 2D API将生成的二维码保存到BufferedImage对象或输出到文件。 4. **图片合成**: 图片合成通常涉及将多个图像合并到一个图像...
Java代码会先生成二维码的图像,然后将其转换为ZPL指令,以便在Zebra打印机上打印。 4. **发送ZPL指令**:一旦ZPL字符串准备好,就可以通过Java API发送到Zebra打印机。这通常涉及到建立一个TCP/IP连接,然后将ZPL...
本篇将深入探讨如何使用Java结合ZXing库来生成包含文字标签信息的条形码和二维码。 ZXing,全称为“Zebra Crossing”,是一个开源的、跨平台的条码读取和生成项目。它支持多种条码格式,包括一维条形码(如EAN-13、...
在Java编程环境中,将图片转换为PDF文件是一个常见的需求,特别是在文档管理和电子出版领域。这里,我们将探讨如何使用Java和特定库,如iText,来完成这个任务。iText是一个强大的开源库,专门用于创建和修改PDF文档...
本知识点主要聚焦于Java实现的一个实用功能——将文字转换为图片,这对于电子签名、验证码生成、文本保护等多种场景都非常有用。我们将深入探讨如何使用Java实现这个功能,以及涉及的相关技术和库。 首先,要将文字...
一旦印章图像准备完毕,我们需要将其转换为适合嵌入Word文档的格式,如JPEG或PNG。 接下来,我们需要找到Word文档中表格的指定位置。在Apache POI中,可以使用XWPFTable类代表Word中的表格,通过遍历表格的...
在Java开发中,有时我们需要对图片进行处理,例如添加文字或二维码,然后将处理后的图片以流的形式传递给前端展示。这个过程涉及到多个技术点,包括图像处理、文件读取以及HTTP响应。以下是对这些知识点的详细解释:...
EMF图片转为JPG/PNG 需安装GraphicsMagick 提供实例代码
为了解析这样的配置文件,我们可以使用如Jackson或Gson这样的库来将JSON转换为Java对象。然后,使用这些对象创建`BufferedImage`实例,并通过`Graphics2D`进行绘图。以下是一个简化的示例代码: ```java import ...
【标题】:“Java聊天室之传送图片文字等功能的实现” 这个标题揭示了我们将要探讨的是一个基于Java开发的聊天室应用程序,它具有发送文本消息以及传输图像等多媒体功能。在Java编程领域,创建一个聊天室涉及到网络...
本篇文章将深入探讨如何使用C++编程语言将文本字符串转换成BMP(Bitmap)图片。 首先,我们需要了解BMP文件格式。BMP是Windows操作系统中常见的位图文件格式,它存储的是未经压缩的像素数据,包括图像宽度、高度、...
Java提供了一些库来实现这个功能,同时还能支持在生成的PDF上添加图像,例如电子印章。以下是对这个主题的详细阐述: 首先,我们需要一个能够处理HTML到PDF转换的库。Apache POI和Jsoup是处理HTML的库,但它们并不...
在Java编程环境中,将图片列表合并转换为PDF文档是一项常见的任务,特别是在报告生成、文档整理或数据可视化等场景。这个示例将详细讲解如何通过Java实现这一功能,包括必要的库引用、代码实现以及可能遇到的问题。 ...
- 图片水印是在图像上添加半透明的文字、图标或图形,用以表明所有权或保护版权。在转换过程中添加水印可能需要先加载原始图像,然后应用透明度调整和位置设置,最后将带有水印的图像保存为新的PDF或PNG文件。Java...
例如,在线教育平台、问答社区等,用户可能需要输入LaTeX公式,而这些平台通常会将LaTeX转换为PNG图片进行展示。 三、latex2png4java概述 latex2png4java是针对这种需求开发的一个Java工具,它可以将LaTeX表达式...
"java 长微博,文字&图片生成自定义图片"这一主题聚焦于如何利用Java技术来创建包含文字和图片的个性化长微博图像。下面我们将深入探讨这一话题,讲解相关的知识点。 首先,Java提供了丰富的库来处理图像操作,其中...
在Android平台上,将文字转换为图片是一项常见的需求,例如用于社交媒体分享、应用内通知或个性化设计等场景。本文将详细讲解如何实现这个功能,包括设置文字的大小、字体、颜色、透明度,以及背景色、背景透明度,...
图片转换: 通过对OFD的文档进行解析,采用java.awt绘制图片,支持转换为PNG、JPEG图片格式。 SVG矢量图形转换: 使用Apachebatik-transcoder提供的图形绘制实现java.awtAPI绘制,最终生成SVG矢量图形。 HTML转换...