用户上传图片然后生成缩略图显示。以下的代码是本人修改后的。提供给需要的朋友参考参考

ImageHandlerServlet 类

package com.web.util;

import java.awt.image.BufferedImage;

import javax.servlet.ServletException;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.sun.image.codec.jpeg.JPEGCodec;

import com.sun.image.codec.jpeg.JPEGImageEncoder;

import com.web.util.PicZoom;

public class ImageHandlerServlet extends HttpServlet{

protected void service(HttpServletRequest request, HttpServletResponse response)

throws ServletException, java.io.IOException {

//图片的路径

String srcImgFileName = request.getParameter("imgPath");

if(null == srcImgFileName || "".equals(srcImgFileName)) {

throw new ServletException("图像参数错误!");

}

response.setContentType("image/jpeg");

ServletOutputStream sos = response.getOutputStream();

//调用PicZoom类的静态方法zoom对原始图像进行缩放。

BufferedImage buffImg = PicZoom.zoom(srcImgFileName);

//创建JPEG图像编码器,用于编码内存中的图像数据到JPEG数据输出流。

JPEGImageEncoder jpgEncoder = JPEGCodec.createJPEGEncoder(sos);

//编码BufferedImage对象到JPEG数据输出流。

jpgEncoder.encode(buffImg);

sos.close();

}

}

这行代码需要从界面接收一张图片的路径String srcImgFileName = request.getParameter("imgPath");

PicZoom类

package com.web.util;

import java.awt.Color;

import java.awt.Image;

import java.awt.image.BufferedImage;

import java.awt.Graphics2D;

import javax.swing.ImageIcon;

public class PicZoom {

private static final int WIDTH = 50; //缩略图宽度

private  static final int HEIGHT = 50;//缩略图高度

public static BufferedImage zoom(String srcFileName) {

//使用源图像文件名创建ImageIcon对象。

ImageIcon imgIcon = new ImageIcon(srcFileName);

//得到Image对象。

Image img = imgIcon.getImage();

return zoom(img);

}

public static BufferedImage zoom(Image srcImage) {

//构造一个预定义的图像类型的BufferedImage对象。

BufferedImage buffImg = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);

// buffImg.flush();

//创建Graphics2D对象,用于在BufferedImage对象上绘图。

Graphics2D g = buffImg.createGraphics();

//设置图形上下文的当前颜色为白色。

g.setColor(Color.WHITE);

//用图形上下文的当前颜色填充指定的矩形区域。

g.fillRect(0, 0, WIDTH, HEIGHT);

//按照缩放的大小在BufferedImage对象上绘制原始图像。

g.drawImage(srcImage, 0, 0, WIDTH, HEIGHT, null);

//释放图形上下文使用的系统资源。

g.dispose();

//刷新此 Image 对象正在使用的所有可重构的资源.

srcImage.flush();

return buffImg;

}

}

web.xml

ImageHandlerServlet

com.web.util.ImageHandlerServlet

ImageHandlerServlet

/imageHandlerServlet

index.jsp

pageEncoding="utf-8"%>

Insert title here

以上的实现只支持".jpg", ".gif", ".png", ".jpeg"格式

java 图片缩略图_java 缩略图实现相关推荐

  1. java图片拷贝_java图片拷贝

    请选择上传的图片或文件: 可以看到,我们将...之后,我们就来编写这个 servlet--UpLoad.java 复制代码 代码如下: package load; import java.io.Fil ...

  2. java 图片水印_JAVA实现图片水印

    一.JAVA图片水印实现原理 1.1.JAVA图片水印实现思路 1.创建缓存图片对象. 2.创建Java绘图工具对象. 3.使用绘图工具对象将原图绘制到缓存图片对象. 4.使用绘图工具将水印(文字/图 ...

  3. java图片马赛克_java实现图片缩放、旋转和马赛克化

    本文是作者结合网上的一些资料封装的java图片处理类,支持图片的缩放,旋转,马赛克化. 不多说,上代码: package deal; import java.awt.Color; import jav ...

  4. java 图片加密_java 对视频和图片进行加密解密[转]

    是时候回到文件加密与解密的具体实现这个主题上来了.后续的举例均采用图片(包括GIF动画)类型,而其他类型资源的实现原理相同,就不一一给出了.首先来看对一幅JPG类型图片进行异或加密的Java实现,由于 ...

  5. java 图片旋转_Java实现图片内容无损任意角度旋转

    主要问题是如何在图片做旋转后计算出新图片的长宽. 在java 2d和基本math库的帮助下,其实利用简单的计算就可以知道. 以下算法只是计算出旋转小于90度时的公式.当旋转大于90时,可以先把问题域换 ...

  6. java图片序列化_Java中的强大武器——对象的序列化

    原标题:Java中的强大武器--对象的序列化 所谓对象序列化就是将对象的状态转换成字节流,以后可以通过这些值再生成相同状态的对象.这个过程也可以通过网络实现,可以先在Windows机器上创建一个对象, ...

  7. java 图片动画_java在窗口中添加图片做动画,怎么一闪一闪的?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 视频来自:优酷 在java中添加图片做动画效果,怎么一闪一闪的运动啊?怎样才能让它不闪的连续运动呢? 下面是代码,代码项目project里有两个类,一个是 ...

  8. java 图片层级_Java Collection 和Map类层次结构图

    欢迎指正! 坑爹的,图片一部分看不全,再上一张吧. 几点经验:摘自think in Java 4.Use an ArrayList if you're doing a lot of random ac ...

  9. java 图片分割_Java atlas图集分割

    java版本的图集分割 atlasFilePath : 图集配置文件 imageFilePath :图集文件 outPath :输出文件夹 图片读取 图片裁剪 图片存储 StringUtil.pars ...

最新文章

  1. 《Linux嵌入式实时应用开发实战(原书第3版)》——第2章 安装Linux2.1 发行版...
  2. springboot 没有跳转到指定页面
  3. 三层交换机实现VLAN互通实例
  4. SVM在R语言中的使用
  5. OpenKruise v0.8.0 版本发布:K8s 社区首个规模化镜像预热能力
  6. c语言小数加分,求救:c语言课程设计 员工工资管理程序 有加分的。谢谢
  7. 软件nginx 0.8.16
  8. Matlab 阶乘factorial
  9. 系统性能优化策略案例
  10. JavaWeb项目打包上线简单流程
  11. 计算机中什么是数组公式,学会就能效率翻倍的数组公式,到底怎么用?
  12. cosx等价无穷小_等价无穷小替换注意事项
  13. 高德地图 toolbar
  14. 分布式系统基础--CAP理论
  15. xml文件报错:URL is not registered
  16. s:hidden name=id value=id/s:hidden
  17. 【强化学习】确定性策略强化学习-DPGDDPG算法推导及分析
  18. python儿童培训课程
  19. 中国上市公司对赌协议研究数据库(截至2020年5月6日,可用于业绩承诺等实证)
  20. 软件测试人员到底需不需要懂代码,我来告诉你

热门文章

  1. 讲一点点自动驾驶技术(1)概论
  2. 开启编程世界的临门一脚
  3. lepus mysql 复制监控_lepus 天兔监控Mysql部署
  4. 如何在抖音官网链接中一键复制微信号打开微信
  5. Could not set property ‘id‘ of ‘class com.twk.pojo.Book
  6. QQ 空间日志批量导出到CSDN
  7. matlab在电力电子的应用,MATLAB在电力电子技术中的应用
  8. 机器学习实战(3)——分类
  9. 内存管理pbuf.h头文件源码解析——LwIP学习
  10. python excel画图_python读取excel数据并且画图