`
yaerfeng1989
  • 浏览: 224842 次
  • 性别: 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代码生成器

    jsp代码生成器jsp代码生成器jsp代码生成器jsp代码生成器jsp代码生成器jsp代码生成器jsp代码生成器jsp代码生成器jsp代码生成器jsp代码生成器jsp代码生成器

    王宝强超贱表情生成器的执行文件

    王宝强超贱表情生成器的执行文件 不想要代码的同学直接下载

    伪代码生成器PseudoCodeTool

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

    ssm 代码生成器 ,后台代码一键生成器

    ssm 代码生成器 ,后台代码一键生成器 springmvc mybatis spring

    .net C#代码生成器

    C#代码生成器,这个是自己写得一个代码生成器、方便底层效率不用花太多时间。。还有其他两个、可以去看下、

    组织机构代码生成器

    组织机构代码生成器,能生成所有单位组织机构代码。

    JSP网站后台代码生成器

    ssh技术,生成数据访问层和服务层的方法和接口代码。但是要求已经建好了数据库!其他的其他就在程序里面有了。

    C#代码生成器

    .net代码生成器 C#代码生成器内置辅助类!!!一键生成含所有源码!!!

    JSP 代码生成工具 JSP Maker 1.1 英文免费版.zip

    JSP Maker 是一款强大易用的代码生成器,可从MySQL和Oracle中快速生成一套完整JSP(JAVA服务器页)代码.使用生成的JSP,用户可以轻松查看,编辑,搜索以及添加删除网页上的数据库记录。生成的代码清洁并易于用户定制.JSP...

    社会信用代码生成器(18位)

    通过组织机构代码(9位)生成18位社会信用代码, 也可以随即生成 可通过示例txt批量进行生成社会信用代码, 若中途产生报错会进行提示 具体txt内容如下所示: 370902-1-MB3863256 370902-1-MB3863256 370902-1-MB3863256 ...

    SqlSugar+Sqlserver 代码生成器

    一款轻量级开源的代码生成器,相对较动软代码生成器而言要轻量的多,支持多种数据库,所用到dll组件也都在github有源码,代码非常的简单有点基础的看源码可以把生成的项目改成自已的风格。 ## 特色 该代码生成器...

    无垠式代码生成器SimpleJEE版 1.0.2 Ada

    无垠式代码生成器SimpleJEE版 1.0.2 Ada 这是最轻量级的代码生成器,生成物只有大约6.5兆。 采用Servlet,JSP, JSON, JQuery等简单技术实现,是标准的Model2的MVC设计模式的架构。 程序员的瑞士军刀。是喜欢使用低配...

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

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

    编译原理中间代码生成器实现C++

    编译原理中间代码生成器实现C++编译原理中间代码生成器实现C++

    CSharp C#代码生成器

    c#代码生成器,生成代码可用于Web及Winform编程,可批量导出代码,导出代码直接拷贝到VS中就可以使用,支持MSSqlServer,Oracle数据库

    动软代码生成器C#连接mysql三层代码模板--修改版

    动软代码生成器 V2.76版,请支持正版。 修改DAL.cmt模板文件: 1、必须增加该命名空间 using MySql.Data.MySqlClient; 2、部分的 SqlParameter 修改为 MySqlParameter 3、获取前几行数据时,修改为 limit 4、参数...

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

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

    中间代码生成器设计

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

    无垠式代码生成器SimpleJEE版 1.0.1 Ada

    这是最轻量级的代码生成器,生成物只有大约6.5兆。 采用Servlet,JSP, JSON, JQuery等简单技术实现,是标准的...其界面是无垠式代码生成器的传统轻量级JSP Json界面的升级版。非常轻,非常快,典型的后端实用主义界面。

    图形点阵LCD代码生成器

    图形点阵LCD代码生成器。 运行本程序后,通过简单的操作就可将指定图形文件的点阵根据设置的属性(字节方向、字位顺序等)转化为十六进制的数据,生成图形点阵代码文件“IMAGELIB.ASM”或者“imagelib.c”。

Global site tag (gtag.js) - Google Analytics