java 图片缩略图_java 缩略图实现
用户上传图片然后生成缩略图显示。以下的代码是本人修改后的。提供给需要的朋友参考参考
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 缩略图实现相关推荐
- java图片拷贝_java图片拷贝
请选择上传的图片或文件: 可以看到,我们将...之后,我们就来编写这个 servlet--UpLoad.java 复制代码 代码如下: package load; import java.io.Fil ...
- java 图片水印_JAVA实现图片水印
一.JAVA图片水印实现原理 1.1.JAVA图片水印实现思路 1.创建缓存图片对象. 2.创建Java绘图工具对象. 3.使用绘图工具对象将原图绘制到缓存图片对象. 4.使用绘图工具将水印(文字/图 ...
- java图片马赛克_java实现图片缩放、旋转和马赛克化
本文是作者结合网上的一些资料封装的java图片处理类,支持图片的缩放,旋转,马赛克化. 不多说,上代码: package deal; import java.awt.Color; import jav ...
- java 图片加密_java 对视频和图片进行加密解密[转]
是时候回到文件加密与解密的具体实现这个主题上来了.后续的举例均采用图片(包括GIF动画)类型,而其他类型资源的实现原理相同,就不一一给出了.首先来看对一幅JPG类型图片进行异或加密的Java实现,由于 ...
- java 图片旋转_Java实现图片内容无损任意角度旋转
主要问题是如何在图片做旋转后计算出新图片的长宽. 在java 2d和基本math库的帮助下,其实利用简单的计算就可以知道. 以下算法只是计算出旋转小于90度时的公式.当旋转大于90时,可以先把问题域换 ...
- java图片序列化_Java中的强大武器——对象的序列化
原标题:Java中的强大武器--对象的序列化 所谓对象序列化就是将对象的状态转换成字节流,以后可以通过这些值再生成相同状态的对象.这个过程也可以通过网络实现,可以先在Windows机器上创建一个对象, ...
- java 图片动画_java在窗口中添加图片做动画,怎么一闪一闪的?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 视频来自:优酷 在java中添加图片做动画效果,怎么一闪一闪的运动啊?怎样才能让它不闪的连续运动呢? 下面是代码,代码项目project里有两个类,一个是 ...
- java 图片层级_Java Collection 和Map类层次结构图
欢迎指正! 坑爹的,图片一部分看不全,再上一张吧. 几点经验:摘自think in Java 4.Use an ArrayList if you're doing a lot of random ac ...
- java 图片分割_Java atlas图集分割
java版本的图集分割 atlasFilePath : 图集配置文件 imageFilePath :图集文件 outPath :输出文件夹 图片读取 图片裁剪 图片存储 StringUtil.pars ...
最新文章
- 《Linux嵌入式实时应用开发实战(原书第3版)》——第2章 安装Linux2.1 发行版...
- springboot 没有跳转到指定页面
- 三层交换机实现VLAN互通实例
- SVM在R语言中的使用
- OpenKruise v0.8.0 版本发布:K8s 社区首个规模化镜像预热能力
- c语言小数加分,求救:c语言课程设计 员工工资管理程序 有加分的。谢谢
- 软件nginx 0.8.16
- Matlab 阶乘factorial
- 系统性能优化策略案例
- JavaWeb项目打包上线简单流程
- 计算机中什么是数组公式,学会就能效率翻倍的数组公式,到底怎么用?
- cosx等价无穷小_等价无穷小替换注意事项
- 高德地图 toolbar
- 分布式系统基础--CAP理论
- xml文件报错:URL is not registered
- s:hidden name=id value=id/s:hidden
- 【强化学习】确定性策略强化学习-DPGDDPG算法推导及分析
- python儿童培训课程
- 中国上市公司对赌协议研究数据库(截至2020年5月6日,可用于业绩承诺等实证)
- 软件测试人员到底需不需要懂代码,我来告诉你
热门文章
- 讲一点点自动驾驶技术(1)概论
- 开启编程世界的临门一脚
- lepus mysql 复制监控_lepus 天兔监控Mysql部署
- 如何在抖音官网链接中一键复制微信号打开微信
- Could not set property ‘id‘ of ‘class com.twk.pojo.Book
- QQ 空间日志批量导出到CSDN
- matlab在电力电子的应用,MATLAB在电力电子技术中的应用
- 机器学习实战(3)——分类
- 内存管理pbuf.h头文件源码解析——LwIP学习
- python excel画图_python读取excel数据并且画图