java设置png dpi_图片PNG,JPEG DPI 调整
时间: 2024-03-17 22:46:12 浏览: 47
Java可以通过ImageIO类读取PNG和JPEG图片,并通过设置ImageWriteParam参数来调整图片的DPI。
以下是设置PNG图片DPI的示例代码:
```java
// 读取PNG图片
BufferedImage image = ImageIO.read(new File("example.png"));
// 获取ImageWriter对象
ImageWriter writer = ImageIO.getImageWritersByFormatName("png").next();
// 获取默认的ImageWriteParam对象
ImageWriteParam writeParam = writer.getDefaultWriteParam();
// 设置压缩模式
writeParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
// 设置压缩质量
writeParam.setCompressionQuality(1.0f);
// 创建IIOImage对象
IIOImage iioImage = new IIOImage(image, null, null);
// 设置DPI
IIOMetadata metadata = writer.getDefaultImageMetadata(new ImageTypeSpecifier(image), writeParam);
IIOMetadataNode node = new IIOMetadataNode("javax_imageio_png_1.0");
IIOMetadataNode pHYs = new IIOMetadataNode("pHYs");
pHYs.setAttribute("pixelsPerUnitXAxis", Integer.toString(300));
pHYs.setAttribute("pixelsPerUnitYAxis", Integer.toString(300));
pHYs.setAttribute("unitSpecifier", "meter");
node.appendChild(pHYs);
metadata.mergeTree("javax_imageio_png_1.0", node);
writeParam.setOptimizeWrite(true);
writer.setOutput(new FileImageOutputStream(new File("example_output.png")));
writer.write(metadata, iioImage, writeParam);
```
以上代码会将图片的DPI设置为300。
设置JPEG图片DPI的方法与PNG类似,只需要将格式名改为"jpeg",并将写入参数改为JPEGImageWriteParam即可。
阅读全文