`
yaerfeng1989
  • 浏览: 235287 次
  • 性别: 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
分享到:
评论

相关推荐

    组织机构代码生成器

    "组织机构代码生成器"是一款专门设计用于自动生成这类代码的工具。这个工具的目的是帮助用户快速为新成立的机构或者需要更新信息的现有机构生成符合规范的组织机构代码。 生成器的功能通常包括以下几个关键方面: ...

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

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

    完美国际 物品代码生成器

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

    最新版java代码生成器基于springMvc+mysql 后台功能一键生成

    最新版java代码生成器基于springMvc+mysql 后台功能一键生成 压缩包里的jdk文件目录 请自行下载jdk1.8.0_45版本并覆盖进去 没有jdk是运行不起来的 也可以下载其他jdk版本 但是jdk1.8.0_45这个文件目录名称不要更改 ...

    html代码生成器

    html代码生成器

    蜗牛代码生成器-Mysql版

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

    动软代码生成器最新版

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

    湛蓝.Net代码生成器

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

    谷歌插件之蓝湖代码生成器,iOS,Android,Swift,Flutter

    谷歌插件之蓝湖代码生成器,iOS,Android,Swift,Flutter​代码已开源,如果生成的代码不符合您平时写的习惯,可自行修改代码模板,修改完后保存即可生效,不需要重新编译插件不包含任何请求,确保您的数据安全,代码已开源,...

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

    中间代码生成器的设计,作为编译方法中的关键环节,将高级语言编写的源程序转换为便于计算机理解和执行的中间表示形式。四元式作为一种经典且普遍采用的中间表示形式,是将源程序表达式转化为一系列操作步骤的桥梁。...

    PHP 代码生成器适合新手练习

    通过使用代码生成器,新手可以更专注于理解编程概念,而不是陷入繁琐的语法细节。 **PHP 语言基础** PHP 是一种广泛使用的开源服务器端脚本语言,特别适合于Web开发。它嵌入到HTML中,能够动态生成网页内容。PHP ...

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

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

    动软.Net代码生成器源码

    4. **提高开发效率**:通过自动化生成大量基础代码,动软.Net代码生成器极大地减少了手动编写这些代码的时间,让开发者能更专注于业务逻辑和复杂问题的解决。 5. **版本升级**:V2.41相对于早期版本可能包含了性能...

    ModBus指令生成器

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

    表情自动生成器java代码实现

    实现了臣妾真的做不到啊、妈妈再打我一次、王宝强泰囧三张图片,如想处理其他图片,在类 cn.lulei.util.img.ImgParams 、前台index.html 和 index.js 两个文件做相应的配置即可实现

    C#三层架构代码生成器【完美缩进】【优化版】.

    C#三层架构代码生成器【完美缩进】【优化版】 之前上传了一个代码生成器,没想到下载量还挺大的,所以这次做了一些小优化,主要是给代码加了更多注释,并进行了一定的整理,界面也做了些调整,另外附上了DAL层代码...

    C#代码生成器

    CsharpOSMeteorCodeGeneratorTESTv1.0.rar 自己写的一个代码生成器,使用过程中有问题可以微博私信我 http://weibo.com/systembreakdown

    动软.Net代码生成器V2.41源码

    动软.Net代码生成器2.41版最新全部源码开放! 动软.Net代码生成器 是一款为C#数据库程序员设计的自动代码生成器,Codematic 生成的代码基于面向对象的思想和三层架构设计,结合了Petshop中经典的思想和设计模式,...

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

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

    MVC model层代码生成器 C#

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

Global site tag (gtag.js) - Google Analytics