`
z3558646
  • 浏览: 7895 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
阅读更多


/**
	 * 根据提供的文字生成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编程领域,将文字转换为图片是一种常见的需求,它广泛应用于验证码生成、文本水印、数据可视化等领域。本文将详细讲解如何利用Java实现这一功能,主要涉及以下几个知识点: 1. **Graphics2D API** Java中的`...

    Java 原生生成表格图片

    总的来说,Java原生生成表格图片是一种实用的技术,虽然相比使用专门的库可能需要更多的编码工作,但它提供了更大的灵活性和自定义空间。通过熟练掌握Java图形2D API,开发者能够创建出满足特定需求的高质量表格图片...

    java poi设置生成的word的图片为上下型环绕以及其位置的实现

    在使用 Java POI 库生成 Word 文档时,有时我们需要对插入的图片进行格式调整,比如设置为上下型环绕,使其在文本中占据独立空间,同时可以调整图片的位置。在默认情况下,POI 会将图片设置为嵌入型,这可能导致图片...

    java使用IText导出PDF(包含图片、表格、文字等等Demo和依赖包)

    总结来说,IText是Java中一个强大且灵活的PDF生成库,通过它可以轻松地创建包含文字、图片和表格的PDF文档。通过理解并实践提供的Demo,你将能够熟练地运用IText进行PDF的生成工作。记住,持续学习和更新库的版本以...

    Android实现文字转图片

    你可以根据实际需求调整Paint对象的属性,比如改变文字对齐方式、添加描边效果、使用渐变色等。同时,确保处理好异常情况,如SD卡不可用或无权限时的错误处理。此外,如果你的应用需要频繁生成图片,考虑使用内存...

    简单的打开图片并生成加字的图片java

    在Java编程环境中,实现"简单的打开图片并生成加字的图片"这个课题,涉及到的知识点主要包括图像处理、GUI(图形用户界面)以及字符串操作。在这个项目中,你需要使用Java的AWT或Swing库来创建两个窗口:一个用于...

    Java文字生成位图demo

    在实际应用中,"Java文字生成位图demo"可能还包括其他功能,如自定义背景色、文字对齐方式、旋转、倾斜等。后端接口通常会接收这些参数,然后调用相应的方法来生成定制化的位图。 这个项目对于创建个性化签名、动态...

    彩色二维码生成器,带logo文字和中心文字

    Logo的大小、位置以及透明度都需要适配,而中心文字则需要考虑字体、字号、颜色和对齐方式等因素,以保证美观且不影响二维码的读取。 4. **用户界面**:用户友好的界面设计能让非技术用户也能轻松使用。界面应包含...

    java图片上添加文字代码.rar

    在实际应用中,可能还需要处理更多复杂情况,比如读取不同格式的图像,处理图像尺寸,动态生成文字,甚至根据用户输入调整文字样式。这个压缩包中的Java代码可能就包含了这些功能,具体实现会更详尽,包括错误处理、...

    Java Poi流 根据Word模板插入相应的文本、表格和图片,生成新的Word报告

    在本主题中,我们将深入探讨如何使用Java POI流处理Word模板,插入文本、表格和图片,以及生成新的Word报告。 1. **Java POI流处理Word模板**: - POI API提供了`XWPFDocument`类来处理`.docx`文件,这是Word 2007...

    java封装的海报生成类

    在Java编程语言中,开发一个能够生成自定义海报的类是一项具有挑战性的任务,涉及到图形绘制、图像处理和对象封装等多个技术领域。本项目中提到的"java封装的海报生成类"显然就是针对这一需求而设计的。这个类通过...

    java 将内容,图片写到word中

    本示例将重点讲解如何利用Java将文本内容和图片写入Word文档,以实现这一功能。 首先,我们需要引入一个库来帮助我们处理Word文档。Apache POI是一个流行的API,它允许程序员创建、修改和显示MS Office格式的文件,...

    java生成word 代码

    在实际开发中,可能还需要处理更复杂的情况,如样式设置(字体、颜色、对齐方式等)、图片插入、列表创建等。对于这些高级功能,Apache POI提供了丰富的API来支持。 此外,docx4j是另一个用于处理Open XML文档的...

    java工具-文字转成图片

    在IT行业中,Java是一种广泛应用的...通过学习和掌握这一技能,开发者可以轻松地创建定制化的电子签名工具,以及其他与文字和图片交互的应用。这个知识点对于提升Java开发者在实际项目中的解决问题能力具有重要意义。

    java生成报表项目实例

    6. **图表和图片**:除了文字和数字,你还可以在Excel中插入图表,POI提供了接口来创建图表,包括线图、柱状图、饼图等。此外,也可以添加图片到工作表。 7. **输出到文件**:所有操作完成后,通过Workbook的write...

    图片上添加文字

    - 使用编程语言如Python的PIL(Python Imaging Library)或它的分支Pillow库,JavaScript的sharp库,Java的Java Advanced Imaging (JAI)库等,可以实现动态在图片上添加文字。这些库提供了丰富的API来控制文字的...

    java转换成word

    8. **样式和格式化:** Word文档的样式和格式化可以通过Java代码控制,包括字体、颜色、大小、对齐方式等。 9. **并发处理:** 如果需要批量处理大量文件,了解如何在多线程环境中操作文件和进行转换会很有帮助。 10...

    C++将文本字符串转换成BMP图片

    - **文本对齐和布局**:确定文本在图片中的位置,可以是左对齐、居中、右对齐,也可以有多种行距和缩进。 - **抗锯齿处理**:为了使文字边缘看起来更平滑,可以采用抗锯齿技术。 - **颜色处理**:可以根据需要设置...

    图片添加文字代码

    通过学习和实践这些概念,开发者可以创建出能够动态在图片上添加文字的应用,这对于制作海报、生成动态图像或创建社交媒体分享图等都是极其有用的。希望这个解释能帮助你理解和应用"图片添加文字代码"的相关知识。

    java使用itext导出PDF文本绝对定位(实现方法)

    iText是一个流行的Java类库,用于生成PDF文档。下面我们将探讨如何使用iText在Java中导出PDF文本,并实现绝对定位。 iText简介 iText是一个开源的Java类库,用于生成PDF文档。它提供了一个强大的API,允许开发者...

Global site tag (gtag.js) - Google Analytics