线jsp版泰囧表情的生成器代码,不用PS也能恶搞。
源代码下载地址:hhttp://www.zuidaima.com/share/1687663042939904.htm
预览地址:http://demo.zuidaima.com/taijiong.jsp
001
|
<%@ page language= "java" contentType= "image/gif;charset=utf-8" pageEncoding= "utf-8" %>
|
002
|
<%@ page import = "java.io.*" %>
|
003
|
<%@ page import = "org.apache.commons.io.FileUtils" %>
|
004
|
<%@ page import = "java.awt.*" %>
|
005
|
<%@ page import = "java.awt.image.BufferedImage" %>
|
006
|
<%@ page import = "javax.imageio.ImageIO" %>
|
007
|
008
|
<%!
|
009
|
int getLength(String text) {
|
010
|
int textLength = text.length();
|
011
|
int length = textLength;
|
012
|
for ( int i = 0 ; i < textLength; i++) {
|
013
|
if (String.valueOf(text.charAt(i)).getBytes().length > 1 ) {
|
014
|
length++;
|
015
|
}
|
016
|
}
|
017
|
return (length % 2 == 0 ) ? length / 2 : length / 2 + 1 ;
|
018
|
}
|
019
|
%>
|
020
|
021
|
<%
|
022
|
String targetImg= null ;
|
023
|
String t1=request.getParameter( "t1" );
|
024
|
String pressText1= "你想加入最代码的java版微博开发活动weibo4j么?" ;
|
025
|
if (t1!= null ){
|
026
|
pressText1= new String(t1.getBytes( "iso8859-1" ), "utf-8" );
|
027
|
}
|
028
|
String pressText2= "还差1牛币?" ;
|
029
|
String t2=request.getParameter( "t2" );
|
030
|
if (t2!= null ){
|
031
|
pressText2= new String(t2.getBytes( "iso8859-1" ), "utf-8" );
|
032
|
}
|
033
|
String t3=request.getParameter( "t3" );
|
034
|
String pressText3= "啊哈哈哈哈!!!现在涨成1000牛币了!!!" ;
|
035
|
if (t3!= null ){
|
036
|
pressText3= new String(t3.getBytes( "iso8859-1" ), "utf-8" );
|
037
|
}
|
038
|
int fontSize= 18 ;
|
039
|
Color color=Color.WHITE;
|
040
|
try {
|
041
|
File file= new File( "/data/www/www.zuidaima.com/images/113/1132701359327232.jpg" );
|
042
|
Image image = ImageIO.read(file);
|
043
|
int width = image.getWidth( null );
|
044
|
int height = image.getHeight( null );
|
045
|
BufferedImage bufferedImage = new BufferedImage(width, height,
|
046
|
BufferedImage.TYPE_INT_RGB);
|
047
|
Graphics2D g = bufferedImage.createGraphics();
|
048
|
g.drawImage(image, 0 , 0 , width, height, null );
|
049
|
g.setFont( new Font( "微软雅黑" , Font.BOLD, fontSize));
|
050
|
g.setColor(color);
|
051
|
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,
|
052
|
1 ));
|
053
|
int x = 135 ;
|
054
|
int y = 163 ;
|
055
|
int width_1 = fontSize * getLength(pressText1);
|
056
|
int height_1 = fontSize;
|
057
|
int widthDiff = width - width_1;
|
058
|
int heightDiff = height - height_1;
|
059
|
if (x < 0 ) {
|
060
|
x = widthDiff / 2 ;
|
061
|
} else if (x > widthDiff) {
|
062
|
x = widthDiff;
|
063
|
}
|
064
|
if (y < 0 ) {
|
065
|
y = heightDiff / 2 ;
|
066
|
} else if (y > heightDiff) {
|
067
|
y = heightDiff;
|
068
|
}
|
069
|
070
|
g.drawString(pressText1, x, y + height_1);
|
071
|
072
|
x = 135 ;
|
073
|
y = 355 ;
|
074
|
width_1 = fontSize * getLength(pressText1);
|
075
|
height_1 = fontSize;
|
076
|
widthDiff = width - width_1;
|
077
|
heightDiff = height - height_1;
|
078
|
if (x < 0 ) {
|
079
|
x = widthDiff / 2 ;
|
080
|
} else if (x > widthDiff) {
|
081
|
x = widthDiff;
|
082
|
}
|
083
|
if (y < 0 ) {
|
084
|
y = heightDiff / 2 ;
|
085
|
} else if (y > heightDiff) {
|
086
|
y = heightDiff;
|
087
|
}
|
088
|
g.drawString(pressText2, x, y + height_1);
|
089
|
090
|
x = 135 ;
|
091
|
y = 550 ;
|
092
|
width_1 = fontSize * getLength(pressText1);
|
093
|
height_1 = fontSize;
|
094
|
widthDiff = width - width_1;
|
095
|
heightDiff = height - height_1;
|
096
|
if (x < 0 ) {
|
097
|
x = widthDiff / 2 ;
|
098
|
} else if (x > widthDiff) {
|
099
|
x = widthDiff;
|
100
|
}
|
101
|
if (y < 0 ) {
|
102
|
y = heightDiff / 2 ;
|
103
|
} else if (y > heightDiff) {
|
104
|
y = heightDiff;
|
105
|
}
|
106
|
g.drawString(pressText3, x, y + height_1);
|
107
|
g.dispose();
|
108
|
ImageIO.write(bufferedImage, "jpg" , response.getOutputStream());
|
109
|
} catch (Exception e) {
|
110
|
e.printStackTrace();
|
111
|
}
|
112
|
%>
|
另外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
线jsp版泰囧表情的生成器代码,不用PS也能恶搞。相关推荐
- 在线jsp版泰囧表情的生成器代码,不用PS也能恶搞。
转载请注明出处:在线jsp版泰囧表情的生成器代码,不用PS也能恶搞. 代码下载地址:http://www.zuidaima.com/share/1687663042939904.htm 以前分享过ja ...
- java版泰囧表情的生成器代码,不用PS也能恶搞。
模版图片 生成后图片 和java攻城狮享受吧. 转自:http://www.zuidaima.com/share/1554294795226112.htm
- 100 行 Java 代码实现一个表情包生成器!
你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 blog.csdn.net/xiaojimanman/article/detai ...
- 表情自动生成器java代码实现
转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/18556703 前几天在其他网站上看到一个表情自动生成器,自己就试着做了一下,先看 ...
- 100行代码搞定实时视频人脸表情识别(附代码)
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|OpenCV学堂 好就没有写点OpenCV4 + Open ...
- 打造线下版元宇宙!机器人VR助力远程做核酸,登上Science子刊
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨程 茜 来源丨智东西 编辑丨Panken 中国科学家研发"魔法贴",让你跟机 ...
- ueditor1.4.3 jsp版在ssh下的配置
2019独角兽企业重金招聘Python工程师标准>>> 对于ueditor就不介绍了,网上一大把,直接言归正传,其主要问题是图片等的上传. 开发环境: myeclipse2014+t ...
- Fer2013 数据集人脸表情识别 详细代码
Fer2013 数据集人脸表情识别 详细代码 本文将从数据集.模型训练.模型实践应用(AI模型落地场景实际应用)几个部分完整讲解基于Fer2013 数据集的人脸表情识别项目, 最终项目实现效果: 通过 ...
- 软件实习项目2——贪吃喵(猫吃鱼版贪吃蛇)(代码实现)
软件实习项目2--贪吃喵(猫吃鱼版贪吃蛇)(代码实现) 类变量的定义以及类的初始化__init__ 一.游戏的逻辑 1.猫头的生成 2.鱼的生成 3.猫头和鱼骨的移动 4.按下键盘,改变方向 二.主窗 ...
最新文章
- Java的学习之路(1)
- 2020.12.07.记录
- 等待指定时间后自动跳转或关闭当前页面
- 论文阅读: Direct Monocular Odometry Using Points and Lines
- ssm上传文件进度条_ssm学习笔记-三种文件上传方式
- oracle 启用闪回数据库,如何启用Oracle10g闪回数据库特性
- python生成随机密码串
- C++实现播放音频文件
- java系统找不到文件_java编译系统找不到指定文件
- 计算机断网后显示配置0%,电脑断网后自动报警提醒怎么设置
- python 网站 批量 投票_python requests 简单实现易班自动登录,批量_文章发布,投票发布,评论,点赞,v2.0...
- Jenkins容器由于虚拟内存不足导致的异常退出
- springMVC文件的上传和页面静态化技术
- 我的创作纪念日---祈愿
- 康威定律对架构设计的指导意义
- python入门day16——函数的递归调用、二分法、三元表达式、匿名函数
- oracle 10 卸载工具,完全卸载oracle10个(转)
- 计算机可以调剂到资源与环境吗,资源与环境求调剂 - 考研 - 小木虫 - 学术 科研 互动社区...
- 多示例学习距离度量 (distance measures)和集合核 (set-kernel)
- Binomial Heap
热门文章
- 新旧势力短兵相接:有焦虑但不恐慌 | SAECCE2018
- 游戏数据逆向分析系列课程之64位篇
- Android直播开发之旅(13):使用FFmpeg+OpenSL ES播放PCM音频
- windows安装包删了会有影响吗_在WIN7系统里的C盘用磁盘清理来删除 以前的Windows安装 这文件会对系统有什么危害吗...
- 一名即将退休的架构师告诉Java程序员们如何投资自己
- 主机用wifi上网,虚拟机怎样上网
- live server使用
- 一款基于stm32的智能衣柜
- 2年经验总结,告诉你如何做好项目管理
- 世事无常,知足常乐!