/**
* 根据提供的文字生成jpg图片
*
* @param s
* String 文字
* @param align
* 文字位置(left,right,center)
* @param y
* y坐标
* @param width
* 图片宽度
* @param height
* 图片高度
* @param bgcolor
* Color 背景色
* @param fontcolor
* Color 字色
* @param font
* Font 字体字形字号
* @param jpgname
* String jpg图片名
* @return
*/
private static boolean createJpgByFontAndAlign(String s, String align, int y, int width, int height,
Color bgcolor, Color fontcolor, Font font, String jpgname) {
try { // 宽度 高度
BufferedImage bimage = new BufferedImage(width,
height, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bimage.createGraphics();
g.setColor(bgcolor); // 背景色
g.fillRect(0, 0, width, height); // 画一个矩形
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON); // 去除锯齿(当设置的字体过大的时候,会出现锯齿)
g.setColor(fontcolor); // 字的颜色
g.setFont(font); // 字体字形字号
int size = font.getSize(); //文字大小
int x = 5;
if(align.equals("left")){
x = 5;
} else if(align.equals("right")){
x = width - size * s.length() - 5;
} else if(align.equals("center")){
x = (width - size * s.length())/2;
}
g.drawString(s, x, y); // 在指定坐标除添加文字
g.dispose();
FileOutputStream out = new FileOutputStream(jpgname); // 指定输出文件
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);
param.setQuality(50f, true);
encoder.encode(bimage, param); // 存盘
out.flush();
out.close();
} catch (Exception e) {
System.out.println("createJpgByFont Failed!");
e.printStackTrace();
return false;
}
return true;
}
public static void main(String[] args) {
createJpgByFontAndAlign("生成图片", "right", 15, 200, 25, Color.white, Color.black,
new Font(null, Font.BOLD, 12), "E:/right.jpg");
createJpgByFontAndAlign("生成图片", "center", 15, 200, 25, Color.white, Color.black,
new Font(null, Font.BOLD, 12), "E:/center.jpg");
createJpgByFontAndAlign("生成图片", "left", 15, 200, 25, Color.white, Color.black,
new Font(null, Font.BOLD, 12), "E:/left.jpg");
}
生成的图片如下,目前生成的文字为全角字符,半角字符会发生错位
居中对齐
左对齐
右对齐
现在又一个问题想请教,当生成的文字中出现全角与半角字符都存在的情况应该如何定位?
- 大小: 2 KB
- 大小: 2 KB
- 大小: 2 KB
分享到:
相关推荐
在Java编程领域,将文字转换为图片是一种常见的需求,它广泛应用于验证码生成、文本水印、数据可视化等领域。本文将详细讲解如何利用Java实现这一功能,主要涉及以下几个知识点: 1. **Graphics2D API** Java中的`...
总的来说,Java原生生成表格图片是一种实用的技术,虽然相比使用专门的库可能需要更多的编码工作,但它提供了更大的灵活性和自定义空间。通过熟练掌握Java图形2D API,开发者能够创建出满足特定需求的高质量表格图片...
在使用 Java POI 库生成 Word 文档时,有时我们需要对插入的图片进行格式调整,比如设置为上下型环绕,使其在文本中占据独立空间,同时可以调整图片的位置。在默认情况下,POI 会将图片设置为嵌入型,这可能导致图片...
总结来说,IText是Java中一个强大且灵活的PDF生成库,通过它可以轻松地创建包含文字、图片和表格的PDF文档。通过理解并实践提供的Demo,你将能够熟练地运用IText进行PDF的生成工作。记住,持续学习和更新库的版本以...
你可以根据实际需求调整Paint对象的属性,比如改变文字对齐方式、添加描边效果、使用渐变色等。同时,确保处理好异常情况,如SD卡不可用或无权限时的错误处理。此外,如果你的应用需要频繁生成图片,考虑使用内存...
在Java编程环境中,实现"简单的打开图片并生成加字的图片"这个课题,涉及到的知识点主要包括图像处理、GUI(图形用户界面)以及字符串操作。在这个项目中,你需要使用Java的AWT或Swing库来创建两个窗口:一个用于...
在实际应用中,"Java文字生成位图demo"可能还包括其他功能,如自定义背景色、文字对齐方式、旋转、倾斜等。后端接口通常会接收这些参数,然后调用相应的方法来生成定制化的位图。 这个项目对于创建个性化签名、动态...
Logo的大小、位置以及透明度都需要适配,而中心文字则需要考虑字体、字号、颜色和对齐方式等因素,以保证美观且不影响二维码的读取。 4. **用户界面**:用户友好的界面设计能让非技术用户也能轻松使用。界面应包含...
在实际应用中,可能还需要处理更多复杂情况,比如读取不同格式的图像,处理图像尺寸,动态生成文字,甚至根据用户输入调整文字样式。这个压缩包中的Java代码可能就包含了这些功能,具体实现会更详尽,包括错误处理、...
在本主题中,我们将深入探讨如何使用Java POI流处理Word模板,插入文本、表格和图片,以及生成新的Word报告。 1. **Java POI流处理Word模板**: - POI API提供了`XWPFDocument`类来处理`.docx`文件,这是Word 2007...
在Java编程语言中,开发一个能够生成自定义海报的类是一项具有挑战性的任务,涉及到图形绘制、图像处理和对象封装等多个技术领域。本项目中提到的"java封装的海报生成类"显然就是针对这一需求而设计的。这个类通过...
本示例将重点讲解如何利用Java将文本内容和图片写入Word文档,以实现这一功能。 首先,我们需要引入一个库来帮助我们处理Word文档。Apache POI是一个流行的API,它允许程序员创建、修改和显示MS Office格式的文件,...
在实际开发中,可能还需要处理更复杂的情况,如样式设置(字体、颜色、对齐方式等)、图片插入、列表创建等。对于这些高级功能,Apache POI提供了丰富的API来支持。 此外,docx4j是另一个用于处理Open XML文档的...
在IT行业中,Java是一种广泛应用的...通过学习和掌握这一技能,开发者可以轻松地创建定制化的电子签名工具,以及其他与文字和图片交互的应用。这个知识点对于提升Java开发者在实际项目中的解决问题能力具有重要意义。
6. **图表和图片**:除了文字和数字,你还可以在Excel中插入图表,POI提供了接口来创建图表,包括线图、柱状图、饼图等。此外,也可以添加图片到工作表。 7. **输出到文件**:所有操作完成后,通过Workbook的write...
- 使用编程语言如Python的PIL(Python Imaging Library)或它的分支Pillow库,JavaScript的sharp库,Java的Java Advanced Imaging (JAI)库等,可以实现动态在图片上添加文字。这些库提供了丰富的API来控制文字的...
8. **样式和格式化:** Word文档的样式和格式化可以通过Java代码控制,包括字体、颜色、大小、对齐方式等。 9. **并发处理:** 如果需要批量处理大量文件,了解如何在多线程环境中操作文件和进行转换会很有帮助。 10...
- **文本对齐和布局**:确定文本在图片中的位置,可以是左对齐、居中、右对齐,也可以有多种行距和缩进。 - **抗锯齿处理**:为了使文字边缘看起来更平滑,可以采用抗锯齿技术。 - **颜色处理**:可以根据需要设置...
通过学习和实践这些概念,开发者可以创建出能够动态在图片上添加文字的应用,这对于制作海报、生成动态图像或创建社交媒体分享图等都是极其有用的。希望这个解释能帮助你理解和应用"图片添加文字代码"的相关知识。
iText是一个流行的Java类库,用于生成PDF文档。下面我们将探讨如何使用iText在Java中导出PDF文本,并实现绝对定位。 iText简介 iText是一个开源的Java类库,用于生成PDF文档。它提供了一个强大的API,允许开发者...