『壹』 java如何獲得bmp圖片的dpi值,記得有個水平解析度和垂直解析度
1、讀取一個bmp文件,把bmp的所有像素用rgbArray存儲起來。
2、然後取其中一個像素點(x0,y0),把它構造成一個Color對象。
3、構造一個類型一樣的BufferedImage imgOut,把像素矩陣rgbArray寫到BufferedImage。
4、把imgOut寫入文件
這個Color對象有getRed,getBlue,getBlack方法,可以分別獲取這個像素在三個顏色分量上的灰度值。
『貳』 java獲取圖片解析度
用apache的開源類 上網下載個sanselan-0.97-incubator.jar架包導入項目中
這個架包所提供的類中可以讀取圖片的dpi
『叄』 JAVA的解析度是什麼意思
就是屏幕圖像的精密度,是指顯示器所能顯示的像素的多少。由於屏幕上的點、線和面都是由像素組成的,顯示器可顯示的像素越多,畫面就越精細,同樣的屏幕區域內能顯示的信息也越多,所以解析度是個非常重要的性能指標之一。可以把整個圖像想像成是一個大型的棋盤,而解析度的表示方式就是所有經線和緯線交叉點的數目。
『肆』 java 改變圖片的解析度。。。可以嗎
我給你一個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
即可查看效果