java 300dpi_使用java imageio 调整图片DPI,例如从72调整为300
时间: 2024-03-12 13:45:06 浏览: 237
智能图片分辨率修改器(JAVA版)
您可以使用以下代码将图片 DPI 从 72 调整为 300:
```java
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ImageIODemo {
public static void main(String[] args) throws IOException {
File inputFile = new File("input.jpg");
BufferedImage inputImage = ImageIO.read(inputFile);
// 设置目标 DPI
int dpi = 300;
// 计算目标像素大小
double pixelWidth = inputImage.getWidth() * 72 / dpi;
double pixelHeight = inputImage.getHeight() * 72 / dpi;
// 创建一个新的 BufferedImage,设置图像类型为 TYPE_INT_RGB
BufferedImage outputImage = new BufferedImage((int) pixelWidth, (int) pixelHeight, BufferedImage.TYPE_INT_RGB);
// 绘制原始图像到新的 BufferedImage
outputImage.createGraphics().drawImage(inputImage, 0, 0, (int) pixelWidth, (int) pixelHeight, null);
// 将新的 BufferedImage 保存为文件
File outputFile = new File("output.jpg");
ImageIO.write(outputImage, "jpg", outputFile);
}
}
```
在上面的代码中,首先读取输入图像 `inputImage`,然后计算目标 DPI(在本例中设置为 300)。接下来,通过计算目标像素大小,创建一个新的 `BufferedImage`,类型为 `TYPE_INT_RGB`。最后,将原始图像绘制到新的 `BufferedImage` 中,并将其保存为输出文件 `output.jpg`。
请注意,这种方法可能会导致图像质量的损失,因为它需要将原始图像重新采样为不同的像素大小。如果您需要在不损失图像质量的情况下更改 DPI,请考虑使用专业的图像处理软件。
阅读全文