`
yaerfeng1989
  • 浏览: 233177 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在线jsp版泰囧表情的生成器代码,不用PS也能恶搞。

    博客分类:
  • java
阅读更多

转载请注明出处:在线jsp版泰囧表情的生成器代码,不用PS也能恶搞。

代码下载地址:http://www.zuidaima.com/share/1687663042939904.htm

 

以前分享过java实现的通过图片模板生成泰囧的例子:

java版泰囧表情的生成器代码,不用PS也能恶搞。

这次分享的是在线jsp版本的

预览地址:http://demo.zuidaima.com/taijiong.jsp

也可以自定义其他文字,如:

http://demo.zuidaima.com/taijiong.jsp?t1=%E6%98%A5%E8%8A%82happy%E5%AE%8C%E4%BA%86%E5%90%A7%EF%BC%9F&t2=%E8%BF%98%E6%B2%A1happy%E5%A4%9F%E4%B9%88%EF%BC%9F&t3=%E8%BF%99%E5%91%A8%E5%85%AD%E6%97%A5%E5%B0%BC%E7%8E%9B%E5%8A%A0%E7%8F%AD%E8%BF%9E%E4%B8%8A9%E5%A4%A9%E7%8F%AD%E5%91%80%EF%BC%81%EF%BC%81%EF%BC%81

 

<%@ page language="java" contentType="image/gif;charset=utf-8" pageEncoding="utf-8"%>
<%@ page import="java.io.*" %>
<%@ page import="org.apache.commons.io.FileUtils" %>
<%@ page import="java.awt.*" %>
<%@ page import="java.awt.image.BufferedImage" %>
<%@ page import="javax.imageio.ImageIO" %>
<%@ page import="zuidaima.com" %>

<%!
int getLength(String text) {
	int textLength = text.length();
	int length = textLength;
	for (int i = 0; i < textLength; i++) {
		if (String.valueOf(text.charAt(i)).getBytes().length > 1) {
			length++;
		}
	}
	return (length % 2 == 0) ? length / 2 : length / 2 + 1;
}
%>

<%
	String targetImg=null;
	String t1=request.getParameter("t1");
	String pressText1="你想加入最代码的java版微博开发活动weibo4j么?";
	if(t1!=null){
		pressText1=new String(t1.getBytes("iso8859-1"),"utf-8");
	}
	String pressText2="还差1牛币?";
	String t2=request.getParameter("t2");
	if(t2!=null){
		pressText2=new String(t2.getBytes("iso8859-1"),"utf-8");
	}
	String t3=request.getParameter("t3");
	String pressText3="啊哈哈哈哈!!!现在涨成1000牛币了!!!";
	if(t3!=null){
		pressText3=new String(t3.getBytes("iso8859-1"),"utf-8");
	}
	int fontSize=18;
	Color color=Color.WHITE;
	try {
		File file=new File("/data/www/www.zuidaima.com/images/113/1132701359327232.jpg");
		Image image = ImageIO.read(file);
		int width = image.getWidth(null);
		int height = image.getHeight(null);
		BufferedImage bufferedImage = new BufferedImage(width, height,
				BufferedImage.TYPE_INT_RGB);
		Graphics2D g = bufferedImage.createGraphics();
		g.drawImage(image, 0, 0, width, height, null);
		g.setFont(new Font("微软雅黑", Font.BOLD, fontSize));
		g.setColor(color);
		g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,
				1));
		int x = 135;
		int y = 163;
		int width_1 = fontSize * getLength(pressText1);
		int height_1 = fontSize;
		int widthDiff = width - width_1;
		int heightDiff = height - height_1;
		if (x < 0) {
			x = widthDiff / 2;
		} else if (x > widthDiff) {
			x = widthDiff;
		}
		if (y < 0) {
			y = heightDiff / 2;
		} else if (y > heightDiff) {
			y = heightDiff;
		}

		g.drawString(pressText1, x, y + height_1);

		x = 135;
		y = 355;
		width_1 = fontSize * getLength(pressText1);
		height_1 = fontSize;
		widthDiff = width - width_1;
		heightDiff = height - height_1;
		if (x < 0) {
			x = widthDiff / 2;
		} else if (x > widthDiff) {
			x = widthDiff;
		}
		if (y < 0) {
			y = heightDiff / 2;
		} else if (y > heightDiff) {
			y = heightDiff;
		}
		g.drawString(pressText2, x, y + height_1);

		x = 135;
		y = 550;
		width_1 = fontSize * getLength(pressText1);
		height_1 = fontSize;
		widthDiff = width - width_1;
		heightDiff = height - height_1;
		if (x < 0) {
			x = widthDiff / 2;
		} else if (x > widthDiff) {
			x = widthDiff;
		}
		if (y < 0) {
			y = heightDiff / 2;
		} else if (y > heightDiff) {
			y = heightDiff;
		}
		g.drawString(pressText3, x, y + height_1);
		g.dispose();
		ImageIO.write(bufferedImage, "jpg", response.getOutputStream());
	} catch (Exception e) {
		e.printStackTrace();
	}
%>

 

另外centos环境下会出现乱码的问题,windows下没有问题,需要修改jdk的fonts支持

需要将微软雅黑的字体复制到jdk的fonts目录,如:

/usr/local/jdk1.6.0_31/jre/lib/fonts/fallback/msyh.ttf

微软雅黑下载地址:http://demo.zuidaima.com/download/msyh.ttf

 

0
0
分享到:
评论

相关推荐

    java jsp代码生成器

    Java JSP代码生成器是一种工具,它可以帮助开发者自动化创建JavaServer Pages (JSP)的源代码,从而提高开发效率和减少手动编码的工作量。在Web应用程序开发中,JSP是用于构建动态网页的一种技术,它结合了Java编程...

    C#代码生成器

    总的来说,C#代码生成器是.NET开发中不可或缺的工具,它降低了开发复杂度,提高了开发效率,同时也保证了代码的质量和规范性。熟练掌握并运用C#代码生成器,将对提升软件开发效率产生积极影响。

    软件著作权代码文档生成器v1.0.0源代码1

    软件著作权代码文档生成器v1.0.0源代码1 在软件开发领域中,著作权代码文档生成器是一个非常重要的工具。它可以自动地生成软件著作权代码文档,提高软件开发效率和质量。本文档生成器使用Java语言开发,基于Maven...

    伪代码生成器PseudoCodeTool

    适用于java/C/C++等代码,源代码为java代码通过运行代码将代码输入程序框中D盘自动生成伪代码文件PseudoCode.txt。(注意:由于是简单代码只可适用于糊弄老师,实验报告等,不可用于学术研究)。

    完美国际 物品代码生成器

    【完美国际 物品代码生成器】是一款专为《完美世界国际版》游戏设计的工具,主要用于帮助游戏管理员(GM)或玩家自定义游戏内的物品属性。这款软件的使用需要将其放置在游戏服务器的特定目录下,即`\ffpwserver\...

    中间代码生成器设计

    编辑原理的中间代码生成器设计C语言版

    PHPCMS V9代码生成器 2.0

    PHPCMS V9是一款流行的开源内容管理系统,而“PHPCMS V9代码生成器 2.0”则是针对这个系统的一个重要辅助工具。这个代码生成器的主要目标是提高开发效率,减少手动编写重复代码的工作量,使开发者能够更加专注于业务...

    html代码生成器

    html代码生成器

    java代码生成器(Freemaker)

    Java代码生成器是一种工具,它能够自动化地根据预先定义好的模板生成特定的源代码,极大地提高了开发效率。在这个场景中,我们关注的是一个基于FreeMarker(Freemaker)的Java代码生成器。FreeMarker是一个强大的、...

    蜗牛代码生成器-Mysql版

    《蜗牛代码生成器-Mysql版》是一款专为Mysql数据库设计的高效代码生成工具,旨在帮助开发者快速生成C#代码,极大地节省了编写数据库交互代码的时间和精力。这款工具的核心价值在于自动化处理繁琐的数据库操作,使得...

    动软代码生成器最新版

    动软代码生成器是一款为程序员精心设计的代码自动生成器。该软件综合了开发中的经典思想和设计模式,支持生成不同架构的项目和代码,完全省去了大量的机械录入的时间和重复动作,让你更加有时间集中在业务逻辑的开发...

    湛蓝.Net代码生成器

    "湛蓝.Net代码生成器"是一款专为.Net开发者设计的高效工具,旨在简化编码过程,提高开发效率。这款代码生成器能够自动生成符合特定规范或模式的.Net代码,减轻程序员的手动编写工作,使得开发者可以将更多的精力集中...

    中间代码生成器的设计(实验报告+代码+运行结果) 编译方法

    实验报告的标题为“中间代码生成器的设计”,其主要探讨了编译方法中涉及的中间代码生成技术。实验的核心目标是设计和实现一个能够将算术表达式转换为四元式序列的工具。四元式是一种常用的中间表示形式,它在编译...

    ModBus指令生成器

    ModBus指令生成器是一款专为IT专业人士设计的实用工具,主要针对ModBusRTU通讯协议。ModBus是一种广泛应用的工业通信协议,它允许设备之间进行简单、高效的串行通信。这款软件采用VC++编程语言开发,旨在简化用户对...

    C#代码生成器(生成MVC三层代码)

    此外,C#代码生成器还能创建简单的项目框架,这包括启动项目、配置文件、依赖注入设置等,使得开发者能够快速搭建起一个基本的MVC应用,然后在此基础上进行功能扩展和定制。 在实际使用中,代码生成器的效率提升是...

    动软代码生成器v2.78Mysql备注生成完美修复dll

    动软代码生成器各个版本对mysql数据库生成数据库文档时,存在备注信息没有出现在文档中的问题。 本资源对动软代码生成器v2.78进行完美修复。 文档中的“说明”列,存放了诸如auto_increment的东西,这个是字段的属性...

    解决动软代码生成器2.78生成MySQL表代码没有列注释的dll

    标题中的“动软代码生成器2.78生成MySQL表代码没有列注释的dll”问题,是指在使用动软代码生成器版本2.78时,用户发现自动生成的MySQL数据库表对应的C#类代码中,列注释(字段描述)没有被正确地包含进去。...

    用C++写的随机数生成器(含源代码)

    这个“随机数生成器”项目的源代码可能包含以下几个部分: - 主函数:处理用户输入,初始化随机数引擎和分布。 - 输入/输出处理:获取用户输入的范围和数量,打印生成的随机数。 - 验证输入:确保输入的有效性,如...

    MVC model层代码生成器 C#

    此外,对于频繁更改的数据库结构,代码生成器能快速适应更新,减少维护成本。 C# MVC Model层的代码生成器可能包含以下特性: 1. 数据库连接配置:用户可以设定数据库连接字符串,工具将根据连接信息读取数据库结构...

Global site tag (gtag.js) - Google Analytics