JSP传送动态图片

你是否曾经想过从jsp页面(或者servlet)中发送动态产生的图像?这篇技巧告诉你如何做。要运行这里的代码,你需要一个Tomcat或者其他支持JSP 1.1的web服务器。

当一个web页面带有image/jpeg (或者其他的图像格式)的MIME类型被发送时,你的浏览器将那个返回结果当作一个图像,然后浏览器显示图像,作为页面的一部分或者完全作为图像自身。要为你的jsp页面设置MIME类型,你需要设置页面的contentType属性:

然后你需要创建一个BufferedImage绘制你的动态图像:

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

创建完一个BufferedImage后,你需要得到图形环境进行绘制,一个Graphics或者Graphics2D对象:

<table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 align=center borderColorLight=black border=1>
<tr> <td class=code style="FONT-SIZE: 9pt" bgColor=#e6e6e6>
Graphics g = image.getGraphics();
// or
Graphics2d g2d = image.createGraphics();</td></tr>
</table>

从现在起你就可以绘制图像内容了。对图形环境绘制就会画到BufferedImage。最开始这个图像都是黑色的,因此用你希望的背景颜色填充图像是一个不错的主意,然后,当你完成图像的绘制,你需要dispose图形环境:

<table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 align=center borderColorLight=black border=1>
<tr> <td class=code style="FONT-SIZE: 9pt" bgColor=#e6e6e6>
g.dispose();
// or
g2d.dispose();</td></tr>
</table>

一旦完成图像的绘制,你在response中返回那个图像。你可以使用非标准的com.sun.image.codec.jpeg包中的JPEGImageEncoder类编码图像,或者如果你使用JDK1.4,你可以使用标准的ImageIO类。在使用JPEGImageEncoder时有一个技巧,你必须从ServletResponse取来ServletOutputStream而不能使用隐含的JSP输出变量out。

<table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 align=center borderColorLight=black border=1>
<tr> <td class=code style="FONT-SIZE: 9pt" bgColor=#e6e6e6>
ServletOutputStream sos = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
encoder.encode(image);
// or
ImageIO.write(image, "JPEG", out);</td></tr>
</table>

时间: 2024-09-03 08:33:37

JSP传送动态图片的相关文章

jsp动态图片无法显示出来

问题描述 jsp动态图片无法显示出来 解决方案 在你的浏览器上点右键,查看源代码,看你生成的图片的url是什么.f.getFoodImage()是否正确返回了地址 解决方案二: 在你的浏览器上点右键 查看审查元素

gif-Java如何保存GIF动态图片??

问题描述 Java如何保存GIF动态图片?? 更正一下之前问过的问题,因为后来发现跟socket没关系. 各位大神,到底如何才能保存gif动态图片?网上找了很久都没找到解决方案,难不成程序猿萌都没有遇到这个困扰? 需求很简单: 1) 加载一张动态图片到JLabel (此处没问题,可以正常显示动态图片) 2)按保存按钮后把动态图片保存到本地. +++++++++++++++++++++++++++++++++++++++++++++++++ 我是Java初学者,基于socket做了一个聊天工具,但

给jsp页面加图片加载不出来

问题描述 给jsp页面加图片加载不出来 jsp页面在main里 图片在images里,我路径 .为啥jsp页面显示不出来呢? 解决方案 src='${request.pageContext.contextPath}/images/1.gif' 解决方案二: 解决方案三: 有木有大神 挺着急的 解决方案四: 1.先看看${request.pageContext.contextPath}对不对,一般这个不至于不正确 2.换个png等图片试试,可能是你的gif图片格式不支持,无法显示 解决方案五: 不

PS利用滤镜制作火焰燃烧字GIF动态图片效果教程

介绍用PS制作火焰燃烧字GIF动态图片效果,需要用到外挂eye candy滤镜来制作火焰效果. 效果图: 先下载eye candy滤镜(点此下载) .下载完后就可以安装了解压压缩文件.解压后如图把解压出来的文件复制到 Plug-ins 文件夹内, 并找到注册文件注册 .滤镜就装好了. 相关教程: PS制作相册自动翻页GIF动画动态效果详细教程 PS制作中国风舞墨文字个人签名档GIF动态图片教程 Photoshop制作漂亮的彩色发光字动画 PhotoShop制作流动的瀑布河水GIF动画效果教程  

PHP如何判断一个gif图片是否为动态图片(动画)

如何使用PHP来判断一个gif图片是否为动态图片(动画)?首先想到的是使用getimagesize()函数来看type值,发现都是gif,所以这个办法是不可行的.下面是作者在网上看到的一个函数,用来判断gif是否为动图的.贴出来和大家分享. /* * 判断图片是否为动态图片(动画) */ function isAnimatedGif($filename) { $fp=fopen($filename,'rb'); $filecontent=fread($fp,filesize($filename)

JAVA高级:基于JSP的动态网站开发技术

js|动态|高级 动态网站开发技术 早期的动态网站开发技术使用的是CGI-BIN接口.开发人员编写与接口相关的单独的程序和基于Web的应用程序,后者通过Web服务器来调用前者.这种开发技术存在着严重的扩展性问题--每一个新的CGI程序要求在服务器上新增一个进程.如果多个用户并发地访问该程序,这些进程将耗尽该Web服务器所有的可用资源,直至其崩溃. 为克服这一弊端,微软公司提出了Active  Server  Pages(ASP)技术,该技术利用"插件"和API简化了Web应用程序的开发

PHP生成GIF动态图片验证码

相信很多人都想过如何用PHP生成GIF动画来实现动态图片验证码,以下是实现过程. ImageCode函数通过GIFEncoder类实现的GIF动画的PHP源代码,有兴趣的朋友可以研究一下. 效果如图:   /** * ImageCode 生成GIF图片验证 * @param $string 字符串 * @param $width 宽度 * @param $height 高度 * */ function ImageCode($string = '', $width = 75, $height =

JSP页面背景图片的设置技巧

最近做了一个项目,jsp页面的背景图片总是考虑它的大小,麻烦死了.结果去网上搜索了一种很好的方法,拿来和大家分享一下 <%@ page language="java" contentType="text/html" pageEncoding="utf-8"%> <html> <head> <title>背景</title> <style type="text/css&qu

给GIF动态图片添加文字简单教程

喜欢玩qq表情的童鞋都知道,一般情况下给gif动态图片添加文字之后图片就变成静态的了,这当然不是我们要的效果,那么怎么才能给gif动态图片添加文字呢??? 给大家介绍一种很简单的方法,此方法适合不会不会PS新手使用. QQ聊天工具 GIF图片素材 1.在QQ聊天框里面插入图片. 2.将鼠标放在图片上,会出现一个选择框,点击上面的涂鸦,然后就可以编辑图片了. 3,编辑好图片点击完成就行了,这时候文字就加好了,很方便. 设置好参数 点击输入水印文字的拖曳确定位置 可以自由保存 4,最终效果 注意事项