如何更改图片png格式为jpeg格式

找到图片,点击属性,在常规中直接将后缀png改为jpeg即可。


Java 中可以使用 ImageIO 类的 write 方法来写入 PNGJPEG 图片,并且可以设置 DPI。 对于 PNG 图片,可以使用 ImageWriteParam 对象来设置 DPI。代码示例如下: ```java BufferedImage image = ImageIO.read(new File("input.png")); ImageWriter writer = ImageIO.getImageWritersByFormatName("png").next(); ImageWriteParam writeParam = writer.getDefaultWriteParam(); IIOMetadata metadata = writer.getDefaultImageMetadata(ImageTypeSpecifier.createFromRenderedImage(image), writeParam); String metadataFormatName = metadata.getNativeMetadataFormatName(); IIOMetadataNode pngNode = new IIOMetadataNode(metadataFormatName); IIOMetadataNode pHYsNode = new IIOMetadataNode("pHYs"); int dpi = 300; // 设置 DPI pHYsNode.setAttribute("pixelsPerUnitXAxis", Integer.toString((int) Math.round(dpi / 0.0254))); pHYsNode.setAttribute("pixelsPerUnitYAxis", Integer.toString((int) Math.round(dpi / 0.0254))); pHYsNode.setAttribute("unitSpecifier", "meter"); pngNode.appendChild(pHYsNode); metadata.mergeTree(metadataFormatName, pngNode); File output = new File("output.png"); ImageOutputStream stream = ImageIO.createImageOutputStream(output); writer.setOutput(stream); writer.write(metadata, new IIOImage(image, null, metadata), writeParam); stream.close(); writer.dispose(); ``` 对于 JPEG 图片,可以使用 JPEGImageWriteParam 对象来设置 DPI。代码示例如下: ```java BufferedImage image = ImageIO.read(new File("input.jpg")); ImageWriter writer = ImageIO.getImageWritersByFormatName("jpg").next(); ImageWriteParam writeParam = writer.getDefaultWriteParam(); JPEGImageWriteParam jpegWriteParam = new JPEGImageWriteParam(Locale.getDefault()); int dpi = 300; // 设置 DPI jpegWriteParam.setDensityUnit(JPEGImageWriteParam.DENSITY_UNIT_DOTS_INCH); jpegWriteParam.setXDensity(dpi); jpegWriteParam.setYDensity(dpi); jpegWriteParam.setQuality(1.0f, false); writeParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); writeParam.setCompressionQuality(1.0f); File output = new File("output.jpg"); ImageOutputStream stream = ImageIO.createImageOutputStream(output); writer.setOutput(stream); writer.write(null, new IIOImage(image, null, null), jpegWriteParam); stream.close(); writer.dispose(); ``` 需要注意的是,设置 DPI 只是给图片添加了元数据,实际上并没有改变图片的像素大小和分辨率。要改变图片的像素大小和分辨率,需要对图片进行缩放操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值