package com.jiong.uploadify; import java.awt.Image; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Iterator; import javax.imageio.ImageIO; import javax.imageio.ImageReadParam; import javax.imageio.ImageReader; import javax.imageio.stream.ImageInputStream; import javax.servlet.ServletException; 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; public class ModifyServlet extends HttpServlet { /** * serialVersionUID */ private static final long serialVersionUID = 8234179100191628473L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); request.setCharacterEncoding("UTF-8"); /* * 获得图片名和裁剪后的图片信息 */ // String userid = request.getParameter("userid"); String x = request.getParameter("x"); String y = request.getParameter("y"); String w = request.getParameter("w"); String h = request.getParameter("h"); String img = request.getParameter("img"); int width = Integer.parseInt(w); int height = Integer.parseInt(h); // int rx = Integer.parseInt(x); // int ry = Integer.parseInt(y); // 文件格式 String ext = img.substring(img.lastIndexOf(".") + 1); File srcfile = new File(getServletConfig().getServletContext().getRealPath("/") + img); FileInputStream is = null; ImageInputStream iis = null; try { // 读取文件 Image image = ImageIO.read(srcfile); // 创建图像缓冲区 BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); tag.getGraphics().drawImage(image.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0, 0, null); FileOutputStream out = new FileOutputStream(srcfile); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); encoder.encode(tag); out.close(); is = new FileInputStream(srcfile); iis = ImageIO.createImageInputStream(is); Iterator<ImageReader> it = ImageIO.getImageReadersByFormatName(ext); ImageReader reader = it.next(); reader.setInput(iis); ImageReadParam param = reader.getDefaultReadParam(); Rectangle rect = new Rectangle(Integer.parseInt(x), Integer.parseInt(y), 120, 120); param.setSourceRegion(rect); BufferedImage bi = reader.read(0, param); ImageIO.write(bi, ext, new File(getServletConfig().getServletContext().getRealPath("/") + img)); response.getWriter().write("http://localhost:8080/myjcrop/" + img); } finally { if (is != null) is.close(); if (iis != null) iis.close(); } } }

小开子 LV1
2021年6月4日
1368448963 LV1
2020年11月5日
qqqqddd LV1
2020年10月26日
miaoss2 LV1
2020年7月31日
jdczuidaima LV16
2020年6月28日
tsy666666 LV8
2020年2月16日
wxd1997 LV13
2020年1月9日
zywzywzyw1 LV17
2019年9月28日
jaonsang LV25
2019年6月14日
2399431755 LV12
2019年4月3日

刘亦菲9527 LV15
2022年8月1日
我不划水
2022年4月24日
暂无贡献等级
abai250 LV1
2022年3月29日
zhuohanyuan LV10
2022年1月7日
tangjj7260 LV18
2021年11月12日
czr2233 LV9
2021年9月14日
1964867825
2021年9月6日
暂无贡献等级
天天 LV9
2021年9月4日
小开子 LV1
2021年6月4日
最代码-宋家辉 LV61
2021年5月16日