大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> JSP专区 -> 从jsp发送动态图像

从jsp发送动态图像

时间: 2021-07-31 作者:daque

你能否已经想过从jsp页面(大概servlet)中发送动静爆发的图像?这篇本领报告你怎样做。要运转这边的代码,你须要一个tomcat大概其余扶助jsp 1.1的web效劳器。   当一个web页面带有image/jpeg (大概其余的图像方法)的mime典型被发送时,你的欣赏器将谁人归来截止看成一个图像,而后欣赏器表露图像,动作页面包车型的士一局部大概实足动作图像自己。要为你的jsp页面树立mime典型,你须要树立页面包车型的士contenttype属性: <%@ page contenttype="image/jpeg" ... %> 而后你须要创造一个bufferedimage绘制你的动静图像: bufferedimage image = new bufferedimage(width,  height, bufferedimage.type_int_rgb); 创造完一个bufferedimage后,你须要获得图形情况举行绘制,一个graphics大概graphics2d东西: graphics g = image.getgraphics(); // or graphics2d g2d = image.creategraphics();   从此刻起你就不妨绘绘图像实质了。对图形情况绘制就会画到bufferedimage。最发端这个图像都是玄色的,所以用你蓄意的后台脸色弥补图像是一个不错的办法,而后,当你实行图像的绘制,你须要dispose图形情况: g.dispose(); // or g2d.dispose();   一旦实行图像的绘制,你在response中归来谁人图像。你不妨运用非规范的com.sun.image.codec.jpeg包中的jpegimageencoder类源代码图像,大概即使你运用jdk1.4,你不妨运用规范的imageio类。在运用jpegimageencoder时有一个本领,你必需从servletresponse取来servletoutputstream而不许运用隐含的jsp输入变量out。 servletoutputstream sos = response.getoutputstream(); jpegimageencoder encoder =  jpegcodec.createjpegencoder(sos); encoder.encode(image); // or imageio.write(image, "jpeg", out);   这边有一个从一切的大概计划中(比方g.dispose();大概g2d.dispose();)采用的一个完备的典型.这个例子运用graphics东西绘制一个随机的多角形,图像经过jpegimageencoder绘制,你不妨自在树立多角形的极点数获得更搀杂的形势,换言之,有更多极点和边。   要运转这个典型,将从"<%@"到结果一个"%>"之间的jsp代码放到一个名为image.jsp的文献中,将谁人文献放到你的web效劳器不妨找到的场合,在运用tomcat的情景下是root目次,启用tomcat,考察http://localhost:8080/image.jsp. <%@ page contenttype="image/jpeg"  import="java.awt.*,java.awt.image.*, com.sun.image.codec.jpeg.*,java.util.*" %> <% // create image int width=200, height=200; bufferedimage image = new bufferedimage(width,  height, bufferedimage.type_int_rgb); // get drawing context graphics g = image.getgraphics(); // fill background g.setcolor(color.white); g.fillrect(0, 0, width, height); // create random polygon polygon poly = new polygon(); random random = new random(); for (int i=0; i < 5; i++) { poly.addpoint(random.nextint(width),  random.nextint(height)); } // fill polygon g.setcolor(color.cyan); g.fillpolygon(poly); // dispose context g.dispose(); // send back image servletoutputstream sos = response.getoutputstream(); jpegimageencoder encoder =  jpegcodec.createjpegencoder(sos); encoder.encode(image); %> 

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.