问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java 改变图片的分辨率。。。可以吗?

发布网友 发布时间:2022-04-22 16:56

我来回答

2个回答

热心网友 时间:2023-11-13 03:40

我给你一个Servlet的源代码,你把这个配置好,试试吧。建议把代码复制到一个开发工具中,这样,你看起来会舒服一些。如下:
package com.photo.gallery;

import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ImageResizer extends HttpServlet {
private static final long serialVersionUID = -8285774993751841288L;

public void doGet(HttpServletRequest request, HttpServletResponse response) {
String imageOutput = getParam(request, "output", "png");
String imageRoot = getParam(request, "root", "/albums");
String imageFile = getParam(request, "file", "/Album1/image1.jpg");
int width = Integer.parseInt(getParam(request, "width", "250"));
int height = Integer.parseInt(getParam(request, "width", "0"));
if ("png".equals(imageOutput))
response.setContentType("image/png");
else
response.setContentType("image/jpeg");
String imageLoc = request.getSession().getServletContext().getRealPath(
imageRoot)
+ imageFile;
try {
BufferedImage bufferedImage = ImageIO.read(new File(imageLoc));
int calcHeight = height > 0 ? height : (width
* bufferedImage.getHeight() / bufferedImage.getWidth());

ImageIO.write(createResizedCopy(bufferedImage, width, calcHeight),
imageOutput, response.getOutputStream());
} catch (Exception e) {
log("Problem with image: " + imageLoc + e);
}
}

BufferedImage createResizedCopy(Image originalImage, int scaledWidth,
int scaledHeight) {
BufferedImage scaledBI = new BufferedImage(scaledWidth, scaledHeight,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = scaledBI.createGraphics();
g.setComposite(AlphaComposite.Src);
g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null);
g.dispose();
return scaledBI;
}

private String getParam(HttpServletRequest request, String param, String def) {
String parameter = request.getParameter(param);
if (parameter == null || "".equals(parameter)) {
return def;
} else {
return parameter;
}
}
}

2.配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>image</servlet-name>
<servlet-class>com.photo.gallery.ImageResizer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>image</servlet-name>
<url-pattern>/image</url-pattern>
</servlet-mapping>

</web-app>

3.在地址栏输出如下的连接:
http://localhost:8088/Javaimageresizer/image?root=/albums&file=/thumbs/imagename.jpg&width=270&height=100
即可查看效果

参考资料:网络获取

热心网友 时间:2023-11-13 03:41

ImageIcon imgIcon=new ImageIcon("c:\\img.jpg");
Image img=imgIcon.getImage();
int w=(int) (img.getWidth(null) * 0.5);
int h=(int) (img.getHeight(null) * 0.5);
img=img.getScaledInstance(w, h, Image.SCALE_SMOOTH);
BufferedImage bimg=new BufferedImage(w, h, BufferedImage.TYPE_INT_BGR);
try {
ImageIO.write(bimg, "jpg", new File("c;\\img1.jpg"));
} catch (IOException ex) {
Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex);
}

=======================================

上面是将图片文件缩小50%的代码.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
表格列求和公式怎么设置 求和函数公式怎么输入 北京注册成立一个公司需要多少钱 北京公司都是什么 手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 java怎样使用代码将图片变得更清晰 java直接保存的图片不清楚,请问需要如何处理 java 改变图片的分辨率。。。可以吗? 『魅蓝E2』魅族手机怎么升级系统 魅族mx2如何升级系统通过OTA 魅族MX5固件怎么升级 魅族Flyme固件更新在官网下载好还是OTA推送好? 魅族mx5OTA升级会不会清除数据 魅族mx5用ota升级有什么不好 魅族mx5支持ota吗?怎么启用 魅族MX3已开放系统权限直接OTA升级不需要清除数据吧? 更新魅族系统需要清除数据吗 魅族MX2的OTA升级后的数据包放在哪里 为什么我的魅族mx3不能OTA更新固件? 魅蓝E2支持OTG外接U盘吗? 魅族ota什么意思? 魅族Flyme固件OTA怎么升级 做泡芙奶油要打几分钟 魅族5s更新提示root设备不支持ota更新,我去官网下载了文件更新还是更新不了怎么办? 魅族Flyme固件OTA升级操作方法 用java能分辨出一张图片的不同部位颜色吗 有没有使图片变清晰的JAVA手机软件 java获取图片分辨率 Java处理bmp图像,怎样操作BMP位图的数据 Java 如何对比两张图片的相似度 怎么用java代码放大或缩小图片不失真。 北大青鸟java培训:如何提高web页面的加载速度? 通过文字搜索图片 java代码实现及说明 JAVA如何优化处理图片,比如压缩质量 JAVA中在声明main的时候的String[] args是什么意思? java如何判断图片文件的宽度和高度? java 如何检测一张图片是否清晰 java识别照片是彩色还是黑白照 Java 图像识别 数字图像处理 从一张JPG图片中识别出若干黑色小方块 java如何判断照片是彩色还是黑白?谢谢 怎样去除痘印小妙招有哪些 怎样能快速去除痘痘痘印 去痘痕的妙招 方法,如何去除痘印,去除痘印小妙招 现在如何去痘痕,有什么好方法?