- 浏览: 28752 次
- 性别:
- 来自: 北京
最新评论
-
yoyozizou:
imjl 写道呵呵,你看得lucene in action是中 ...
lucene in action笔记之一索引 -
xucons:
修改完http.conf后,最好在cmd中运行一下httpd. ...
apache+php+mysql 部署遇到的问题 -
javawxl:
学习!!!
利用独立的servlet在页面显示图片 -
apchy:
写的不错,以前也实现过相似功能,但没不完善,收藏了
利用独立的servlet在页面显示图片 -
liangguanhui:
这样生成的缩略图貌似很粗糙的。
利用独立的servlet在页面显示图片
web页面上的图片显示可以指定了一个url, 直接访问后台的一个servlet. 在后台数据库可以专门建一个图片库. 以下是一个简单的示例.在这里采用了imageJ-v1.37项目(网址: http://rsb.info.nih.gov/ij/ ) 进行图片处理.
1, ImageViewServlet
java 代码
- package com.hank.web.servlet;
- import java.io.IOException;
- import java.io.OutputStream;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import org.springframework.context.ApplicationContext;
- import org.springframework.web.context.support.WebApplicationContextUtils;
- import com.hank.model.ConAttachs;
- import com.hank.service.ConAttachsManager;
- import com.hank.util.ImageUtil;
- /**
- * @author hank
- * @date 2007-9-12 03:49:57
- * @version
- */
- public class ImageViewServlet extends HttpServlet {
- private static final long serialVersionUID = 714920135153152003L;
- protected final transient Log log = LogFactory.getLog(getClass());
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- execute(request, response);
- }
- @Override
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- execute(request, response);
- }
- public void execute(HttpServletRequest request, HttpServletResponse response)
- throws IOException, ServletException {
- String[] infos = request.getPathInfo().split("/");
- String name=infos[1];
- String id=infos[2].substring(0, infos[2].lastIndexOf('.'));
- OutputStream out = response.getOutputStream();
- ApplicationContext ctx =
- WebApplicationContextUtils.getWebApplicationContext(getServletContext());
- if (name.equals("conAttach")){
- ConAttachsManager mgr = (ConAttachsManager)ctx.getBean("conAttachsManager");
- ConAttachs conAttachs = mgr.getConAttachsByContextId(id);
- if(conAttachs.getFType().intValue()==1){
- return;
- }
- byte[] images = conAttachs.getContextFile();
- try {
- response.setContentType(conAttachs.getFhttpContent());//设置contentType
- ImageUtil.outLogo(images,out,200,100);//显示200*100的缩略图
- response.getOutputStream().flush();
- } catch (Exception e) {
- e.printStackTrace();
- }finally{
- if(out!=null){
- out.close();
- }
- }
- }else if(){
- ... ...
- }
- }
- }
2, ImageUtil
java 代码
- package com.hank.util;
- import ij.ImagePlus;
- import ij.io.Opener;
- import ij.process.Blitter;
- import ij.process.ImageProcessor;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.image.BufferedImage;
- import java.io.BufferedInputStream;
- import java.io.BufferedOutputStream;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.io.PrintWriter;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import com.sun.image.codec.jpeg.ImageFormatException;
- import com.sun.image.codec.jpeg.JPEGCodec;
- import com.sun.image.codec.jpeg.JPEGImageEncoder;
- /**
- * @author hank
- * @date 2007-9-12 03:14:21
- * @version
- */
- public class ImageUtil {
- protected final transient Log log = LogFactory.getLog(getClass());
- public static void outLogo(byte[] source,OutputStream out,int dwidth,int dheight) throws Exception{
- BufferedInputStream stream = new BufferedInputStream((new ByteArrayInputStream(source)),8092);//控制流速
- Image src = javax.imageio.ImageIO.read(stream);
- int width=src.getWidth(null);
- int height=src.getHeight(null);
- int towidth,toheight;
- if (width>dwidth || height>dheight){
- if (((float)width/dwidth)>=((float)height/dheight)){
- towidth = dwidth;
- toheight = (height*dwidth)/width;
- }else{
- toheight = dheight;
- towidth = (width* dheight)/height;
- }
- }else{
- towidth= width;
- toheight=height;
- }
- BufferedImage tag = new BufferedImage(towidth,toheight,BufferedImage.TYPE_INT_RGB);
- tag.getGraphics().drawImage(src,0,0,towidth,toheight,null);
- JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
- encoder.encode(tag);
- }
- }
3 ,在web.xml中配置 servlet
4 , 页面上直接使用img标签指定src即可
- ij.jar (1 MB)
- 描述: imageJ包
- 下载次数: 270
评论
5 楼
javawxl
2008-04-30
学习!!!
4 楼
apchy
2008-04-26
写的不错,以前也实现过相似功能,但没不完善,收藏了
3 楼
liangguanhui
2008-04-08
这样生成的缩略图貌似很粗糙的。
2 楼
wy36928
2008-04-06
<div class='quote_title'>hank 写道</div><div class='quote_div'><p> web页面上的图片显示可以指定了一个url, 直接访问后台的一个servlet. 在后台数据库可以专门建一个图片库. 以下是一个简单的示例.在这里采用了imageJ-v1.37项目(网址: <span style='font-family: Arial;'><a href='http://rsb.info.nih.gov/ij/'>http://rsb.info.nih.gov/ij/</a> ) </span>进行图片处理.</p><p> </p><p>1, ImageViewServlet </p><div class='code_title'>java 代码</div><div class='dp-highlighter'><ol class='dp-j'><li class='alt'><span><span class='keyword'>package</span><span> com.hank.web.servlet; </span></span> </li><li><span> </span> </li><li class='alt'><span class='keyword'>import</span><span> java.io.IOException; </span> </li><li/><li><span class='keyword'>testtest </span></li><li><span class='keyword'>import</span><span> javax.servlet.http.HttpServletRequest; </span> </li><li class='alt'><span class='keyword'>import</span><span> javax.servlet.http.HttpServletResponse; </span> </li><li><span> </span> </li><li class='alt'><span class='keyword'>import</span><span> org.apache.commons.logging.Log; </span> </li><li><span class='keyword'>import</span><span> org.apache.commons.logging.LogFactory; </span> </li><li class='alt'><span class='keyword'>import</span><span> org.springframework.context.ApplicationContext; </span> </li><li><span class='keyword'>import</span><span> org.springframework.web.context.support.WebApplicationContextUtils; </span> </li><li class='alt'><span> </span> </li><li><span class='keyword'>import</span><span> com.hank.model.ConAttachs; </span> </li><li class='alt'><span class='keyword'>import</span><span> com.hank.service.ConAttachsManager; </span> </li><li><span class='keyword'>import</span><span> com.hank.util.ImageUtil; </span> </li><li class='alt'><span> </span> </li><li><span class='comment'>/** </span> </li><li class='alt'><span><span class='comment'> * @author hank </span> </span> </li><li><span><span class='comment'> * @date 2007-9-12 03:49:57 </span> </span> </li><li class='alt'><span><span class='comment'> * @version </span> </span> </li><li><span><span class='comment'> */</span><span> </span></span> </li><li class='alt'><span class='keyword'>public</span><span> </span><span class='keyword'>class</span><span> ImageViewServlet </span><span class='keyword'>extends</span><span> HttpServlet { </span> </li><li><span> </span><span class='keyword'>private</span><span> </span><span class='keyword'>static</span><span> </span><span class='keyword'>final</span><span> </span><span class='keyword'>long</span><span> serialVersionUID = 714920135153152003L; </span> </li><li class='alt'><span> </span><span class='keyword'>protected</span><span> </span><span class='keyword'>final</span><span> </span><span class='keyword'>transient</span><span> Log log = LogFactory.getLog(getClass()); </span> </li><li><span> </span><span class='annotation'>@Override</span><span> </span> </li><li class='alt'><span> </span><span class='keyword'>protected</span><span> </span><span class='keyword'>void</span><span> doGet(HttpServletRequest request, HttpServletResponse response) </span><span class='keyword'>throws</span><span> ServletException, IOException { </span> </li><li><span> execute(request, response); </span> </li><li class='alt'><span> } </span> </li><li><span> </span> </li><li class='alt'><span> </span><span class='annotation'>@Override</span><span> </span> </li><li><span> </span><span class='keyword'>protected</span><span> </span><span class='keyword'>void</span><span> doPost(HttpServletRequest request, HttpServletResponse response) </span><span class='keyword'>throws</span><span> ServletException, IOException { </span> </li><li class='alt'><span> execute(request, response); </span> </li><li><span> } </span> </li><li class='alt'><span> </span> </li><li><span> </span><span class='keyword'>public</span><span> </span><span class='keyword'>void</span><span> execute(HttpServletRequest request, HttpServletResponse response) </span> </li><li class='alt'><span> </span><span class='keyword'>throws</span><span> IOException, ServletException { </span> </li><li><span> String[] infos = request.getPathInfo().split(</span><span class='string'>"/"</span><span>); </span> </li><li class='alt'><span> String name=infos[</span><span class='number'>1</span><span>]; </span> </li><li><span> String id=infos[</span><span class='number'>2</span><span>].substring(</span><span class='number'>0</span><span>, infos[</span><span class='number'>2</span><span>].lastIndexOf(</span><span class='string'>'.'</span><span>)); </span> </li><li class='alt'><span> </span> </li><li><span> OutputStream out = response.getOutputStream(); </span> </li><li class='alt'><span> </span> </li><li><span> ApplicationContext ctx = </span> </li><li class='alt'><span> WebApplicationContextUtils.getWebApplicationContext(getServletContext()); </span> </li><li><span> </span> </li><li class='alt'><span> </span><span class='keyword'>if</span><span> (name.equals(</span><span class='string'>"conAttach"</span><span>)){ </span> </li><li><span> ConAttachsManager mgr = (ConAttachsManager)ctx.getBean(</span><span class='string'>"conAttachsManager"</span><span>); </span> </li><li class='alt'><span> ConAttachs conAttachs = mgr.getConAttachsByContextId(id); </span> </li><li><span> </span> </li><li class='alt'><span> </span><span class='keyword'>if</span><span>(conAttachs.getFType().intValue()==</span><span class='number'>1</span><span>){ </span> </li><li><span> </span><span class='keyword'>return</span><span>; </span> </li><li class='alt'><span> } </span> </li><li><span> </span><span class='keyword'>byte</span><span>[] images = conAttachs.getContextFile(); </span> </li><li class='alt'><span> </span><span class='keyword'>try</span><span> { </span> </li><li><span> response.setContentType(conAttachs.getFhttpContent());</span><span class='comment'>//设置contentType </span><span> </span> </li><li class='alt'><span> ImageUtil.outLogo(images,out,</span><span class='number'>200</span><span>,</span><span class='number'>100</span><span>);</span><span class='comment'>//显示200*100的缩略图 </span><span> </span> </li><li><span> response.getOutputStream().flush(); </span> </li><li class='alt'><span> } </span><span class='keyword'>catch</span><span> (Exception e) { </span> </li><li><span> e.printStackTrace(); </span> </li><li class='alt'><span> }</span><span class='keyword'>finally</span><span>{ </span> </li><li><span> </span><span class='keyword'>if</span><span>(out!=</span><span class='keyword'>null</span><span>){ </span> </li><li class='alt'><span> out.close(); </span> </li><li><span> } </span> </li><li class='alt'><span> } </span> </li><li><span> }</span><span class='keyword'>else</span><span> </span><span class='keyword'>if</span><span>(){ </span> </li><li class='alt'><span> ... ... </span> </li><li><span> } </span> </li><li class='alt'><span> } </span> </li><li><span>} </span> </li></ol></div><p> 2, ImageUtil</p><div class='code_title'>java 代码</div><div class='dp-highlighter'><ol class='dp-j'><li class='alt'><span><span class='keyword'>package</span><span> com.hank.util; </span></span> </li><li><span> </span> </li><li class='alt'><span class='keyword'>import</span><span> ij.ImagePlus; </span> </li><li><span class='keyword'>import</span><span> ij.io.Opener; </span> </li><li class='alt'><span class='keyword'>import</span><span> ij.process.Blitter; </span> </li><li><span class='keyword'>import</span><span> ij.process.ImageProcessor; </span> </li><li class='alt'><span> </span> </li><li><span class='keyword'>import</span><span> java.awt.Graphics; </span> </li><li class='alt'><span class='keyword'>import</span><span> java.awt.Image; </span> </li><li><span class='keyword'>import</span><span> java.awt.image.BufferedImage; </span> </li><li class='alt'><span class='keyword'>import</span><span> java.io.BufferedInputStream; </span> </li><li><span class='keyword'>import</span><span> java.io.BufferedOutputStream; </span> </li><li class='alt'><span class='keyword'>import</span><span> java.io.ByteArrayInputStream; </span> </li><li><span class='keyword'>import</span><span> java.io.ByteArrayOutputStream; </span> </li><li class='alt'><span class='keyword'>import</span><span> java.io.File; </span> </li><li><span class='keyword'>import</span><span> java.io.FileOutputStream; </span> </li><li class='alt'><span class='keyword'>import</span><span> java.io.IOException; </span> </li><li><span class='keyword'>import</span><span> java.io.OutputStream; </span> </li><li class='alt'><span class='keyword'>import</span><span> java.io.PrintWriter; </span> </li><li><span> </span> </li><li class='alt'><span class='keyword'>import</span><span> org.apache.commons.logging.Log; </span> </li><li><span class='keyword'>import</span><span> org.apache.commons.logging.LogFactory; </span> </li><li class='alt'><span> </span> </li><li><span class='keyword'>import</span><span> com.sun.image.codec.jpeg.ImageFormatException; </span> </li><li class='alt'><span class='keyword'>import</span><span> com.sun.image.codec.jpeg.JPEGCodec; </span> </li><li><span class='keyword'>import</span><span> com.sun.image.codec.jpeg.JPEGImageEncoder; </span> </li><li class='alt'><span> </span> </li><li><span class='comment'>/** </span> </li><li class='alt'><span><span class='comment'> * @author hank </span> </span> </li><li><span><span class='comment'> * @date 2007-9-12 03:14:21 </span> </span> </li><li class='alt'><span><span class='comment'> * @version </span> </span> </li><li><span><span class='comment'> */</span><span> </span></span> </li><li class='alt'><span class='keyword'>public</span><span> </span><span class='keyword'>class</span><span> ImageUtil { </span> </li><li><span> </span><span class='keyword'>protected</span><span> </span><span class='keyword'>final</span><span> </span><span class='keyword'>transient</span><span> Log log = LogFactory.getLog(getClass()); </span> </li><li class='alt'><span> </span> </li><li><span> </span><span class='keyword'>public</span><span> </span><span class='keyword'>static</span><span> </span><span class='keyword'>void</span><span> outLogo(</span><span class='keyword'>byte</span><span>[] source,OutputStream out,</span><span class='keyword'>int</span><span> dwidth,</span><span class='keyword'>int</span><span> dheight) </span><span class='keyword'>throws</span><span> Exception{ </span> </li><li class='alt'><span> BufferedInputStream stream = </span><span class='keyword'>new</span><span> BufferedInputStream((</span><span class='keyword'>new</span><span> ByteArrayInputStream(source)),</span><span class='number'>8092</span><span>);</span><span class='comment'>//控制流速 </span><span> </span> </li><li><span> Image src = javax.imageio.ImageIO.read(stream); </span> </li><li class='alt'><span> </span><span class='keyword'>int</span><span> width=src.getWidth(</span><span class='keyword'>null</span><span>); </span> </li><li><span> </span><span class='keyword'>int</span><span> height=src.getHeight(</span><span class='keyword'>null</span><span>); </span> </li><li class='alt'><span> </span><span class='keyword'>int</span><span> towidth,toheight; </span> </li><li><span> </span><span class='keyword'>if</span><span> (width>dwidth || height>dheight){ </span> </li><li class='alt'><span> </span><span class='keyword'>if</span><span> (((</span><span class='keyword'>float</span><span>)width/dwidth)>=((</span><span class='keyword'>float</span><span>)height/dheight)){ </span> </li><li><span> towidth = dwidth; </span> </li><li class='alt'><span> toheight = (height*dwidth)/width; </span> </li><li><span> }</span><span class='keyword'>else</span><span>{ </span> </li><li class='alt'><span> toheight = dheight; </span> </li><li><span> towidth = (width* dheight)/height; </span> </li><li class='alt'><span> } </span> </li><li><span> }</span><span class='keyword'>else</span><span>{ </span> </li><li class='alt'><span> towidth= width; </span> </li><li><span> toheight=height; </span> </li><li class='alt'><span> } </span> </li><li><span> </span> </li><li class='alt'><span> BufferedImage tag = </span><span class='keyword'>new</span><span> BufferedImage(towidth,toheight,BufferedImage.TYPE_INT_RGB); </span> </li><li><span> tag.getGraphics().drawImage(src,</span><span class='number'>0</span><span>,</span><span class='number'>0</span><span>,towidth,toheight,</span><span class='keyword'>null</span><span>); </span> </li><li class='alt'><span> JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); </span> </li><li><span> encoder.encode(tag); </span> </li><li class='alt'><span> } </span> </li><li><span>} </span> </li></ol></div><p> 3 ,在web.xml中配置 servlet</p><p>4 , 页面上直接使用img标签指定src即可 </p><p> </p></div>
1 楼
yourgame
2008-04-05
import ij.ImagePlus;
import ij.io.Opener;
import ij.process.Blitter;
import ij.process.ImageProcessor;
貌似没有使用imageJ
import ij.io.Opener;
import ij.process.Blitter;
import ij.process.ImageProcessor;
貌似没有使用imageJ
相关推荐
例程1-1:利用Servlet显示动态日期 例程1-2:利用JSP表达式显示动态格式文本 例程1-3:利用JSP标准标记库和表达式语言显示动态新闻 例程1-4:利用自定义标记控制网页图片显示 例程1-5:利用Applet在Web布面实现时钟 ...
网络相册系统是网站为用户提供的个人相片展示和存放平台,浏览查看他人相册并给予支持。...其中,功能导航区域、用户操作区域及版权信息区域是固定的内容,用来进行其他操作,而图片展示区域是按类别显示图片信息。
利用servlet方式随机生成验证码的图片,显示到jsp页面!输入验证码提交后显示成功还是失败!
5 include.jsp 第4章\ch4 利用include指令包含上述3个JSP页面 6 example1.jsp 第4章\ch4 Scriptlet示例 7 div.jsp 第4章\ch4 处理客户请求阶段的错误示例 8 error.jsp 第4章\ch4 div.jsp页面的错误处理页面 9 ...
- 由于该项目是学习任务且缺少美工,可以利用[星巴克中国官网](https://www.starbucks.com.cn/) 来提取一些图片资料进行加快进度。 #### 1.3 绘制基本思路流程,考虑架构,分清各个层次的任务 - 对web开发、html...
案例6 利用JDBC-ODBC查看查询结果 第八章 Java与Servlet 案例1 利用Servlet打开非HTML格式的文档 案例2 Servlet和JSP的通信 案例3 Servlet和Servlet的通信 案例4 Servlet动态生成图像 案例5 ...
友情链接及网页访问量统计显示:在博客的个人页面中还提供了推荐给普通网络用户的相关友情链接,此外,对个人页面的访问量也在随时进行统计,并在个人页面中进行直观的显示。 博客主页面的用例图如图3所示: 图3 ...
友情链接及网页访问量统计显示:在博客的个人页面中还提供了推荐给普通网络用户的相关友情链接,此外,对个人页面的访问量也在随时进行统计,并在个人页面中进行直观的显示。 博客主页面的用例图如图3所示: 图3 ...
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,...
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,...
实例146 复制图片 219 实例147 随机读写Java类文件 221 第3篇 Java面向对象编程 第8章 面向对象(教学视频:72分钟) 226 8.1 类 226 实例148 简单的通讯录类 226 实例149 简单的长度单位...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
1.7.2 将图片输出到JSP页面之中 1.8 疑难解惑 1.8.1 Tomcat端口被占用导致不能启动 1.8.2 Eelipse没有创建JSP项 1.9 精彩回顾 第2章 JavaWeb开发必修课 ——JSP语法 2.1 本章学习任务 2.1.1 本章知识体系 2.1.2 ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
显示网页 505 13.4.1 使用WebView浏览网页 506 13.4.2 使用WebView加载HTML 代码 507 13.5 使用Web Service进行 网络编程 508 13.5.1 Web Service简介 509 13.5.2 Web Service平台概述 510 13.5.3...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
13.2.1利用currentTimeMillis()记录程序执行的时间395 13.2.2利用exit()退出虚拟机396 13.2.3获取和设置环境属性397 13.3Math类的使用398 13.3.1利用随机数求π值398 13.3.2利用三角函数求π值400 13.3.3利用...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...