盾怪网教程:是一个免费提供流行杀毒软件教程、在线学习分享的学习平台!

Servlet完成动态图文结合输出

时间:2025/1/8作者:未知来源:盾怪网教程人气:

[摘要]imageFile.toLowerCase().endsWith(".jpg")) imageFile = getServletContext().get...
imageFile.toLowerCase().endsWith(".jpg")) { imageFile = getServletContext().getRealPath(imageFile); InputStream imageIn = new FileInputStream(new File(imageFile)); JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(imageIn); BufferedImage image = decoder.decodeAsBufferedImage(); Graphics g=image.getGraphics(); //设置颜色 g.setColor(new Color(Integer.parseInt(fontColor,16))); //设置字体\\ Font mFont = new Font(fontName,Font.PLAIN,fontSize);//默认字体\\ if(fontStyle.equalsIgnoreCase("italic")) mFont=new Font(fontName,Font.ITALIC,fontSize); if(fontStyle.equalsIgnoreCase("bold")) mFont=new Font(fontName,Font.BOLD,fontSize); if(fontStyle.equalsIgnoreCase("plain")) mFont=new Font(fontName,Font.PLAIN,fontSize); g.setFont(mFont); //输出文字 g.drawString(text,x,y); //输出数据流\\ JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output); encoder.encode(image); imageIn.close(); } output.close(); }}//////////





上面获取参数的代码使用了一个工具类,它是扩展了request.getParameter()功能的一个类:

package net.xdevelop.util;import javax.servlet.*;public class ParamUtil { /** * 获得request中指定名称的参数值,若有中文乱码问题请增加转码部分 * @param request ServletRequest对象\\ * @param paramName 参数名称 * @return 如果该变量值存在则返回该值,否则返回"" */ public static String getParameter( ServletRequest request, String paramName ) { String temp = request.getParameter(paramName); if( temp != null && !temp.equals("") ) { //若有中文问题,在此添加转码代码,例:temp = new String(temp.getBytes("8859_1"), "GB2312"); return temp; } else { return ""; } } /** * 获得request中的int型参数值 * @param request ServletRequest对象\\ * @param paramName 参数名称 * @param defaultNum 默认值,如果没有返回该值 * @return 如果该参数值存在则返回其转换为int型的值,否则返回defaultNum */ public static int getIntParameter( ServletRequest request, String paramName, int defaultNum ) { String temp = request.getParameter(paramName); if( temp != null && !temp.equals("") ) { int num = defaultNum; try { num = Integer.parseInt(temp); } catch( Exception ignored ) { } return num; } else { return defaultNum; } }}///////////




实际应用

在web.xml中声明该Servlet

<servlet> <servlet-name>textintoimage</servlet-name> <servlet-class>net.xdevelop.merge.TextIntoImage</servlet-class></servlet><servlet-mapping> <servlet-name>textintoimage</servlet-name> <url-pattern>/TextIntoImage</url-pattern></servlet-mapping>





将net.xdevelop.merge.TextIntoImage类和net.xdevelop.util.ParamUtil类放入WEB-INF/classes/
JSP页面调用,本例中要将bg.jpg文件放入根目录,示例代码: <img border="0" src=http://cfan.net.cn/info/"/TextIntoImage?text=热点聚焦&imageFile=/bg.jpg&x=20&y=20&fontColor=FFFFFF&fontStyle=bold&fontName=宋体&fontSize=16">
继续完善
到此可以暂告一个段落了。不过还有很多地方有待继续完善,例如:加入文字效果处理(阴影、立体、浮雕等),文字竖排,增加对GIF文件支持等。

本文代码下载:demo.zip

关键词:Servlet完成动态图文结合输出




Copyright © 2012-2018 盾怪网教程(http://www.dunguai.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版