4
압축을 수행하지 않고 .png로 BufferedImage
을 작성해야합니다. 둘러 보았고 다음 코드를 작성했습니다.BufferedImage를 압축하지 않고 PNG로 쓰려면 어떻게해야합니까?
public void save(String outFilePath) throws IOException {
Iterator<ImageWriter> iter = ImageIO.getImageWritersByFormatName("png");
ImageWriter writer = iter.next();
File file = new File(outFilePath);
ImageOutputStream ios = ImageIO.createImageOutputStream(file);
writer.setOutput(ios);
ImageWriteParam iwp = writer.getDefaultWriteParam();
iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
iwp.setCompressionQuality(1.0f);
IIOImage image = new IIOImage(mapImage, null, null);
writer.write(null, image, iwp);
writer.dispose();
//ImageIO.write(mapImage, "png", file);
}
예외가 발생했습니다.
Exception in thread "main" java.lang.UnsupportedOperationException: Compression not supported.
at javax.imageio.ImageWriteParam.setCompressionMode(Unknown Source)
at Map.MapTransformer.save(MapTransformer.java:246)
at Map.MapTransformer.main(MapTransformer.java:263)
으로 시도해보십시오. 왜 bmp가 아니겠습니까? – radai
아마도 MODE_DISABLED를 대신 사용해야합니다. – NovaDenizen
또한 'PNG'압축을 사용하는 유일한 단점은 다소 고비용의 작업입니다. 'PNG'는 무손실이기 때문에 압축은 화질에 나쁜 영향을 미치지 않습니다. – NovaDenizen