gpt4 book ai didi

java - 将 PNG 转换为 JPEG

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:09 25 4
gpt4 key购买 nike

我在将简单的 PNG 格式转换为 JPEG 格式时遇到问题。我正在使用以下代码:

...

    File png = new File(filePath);
try {
SeekableStream s = new FileSeekableStream(png);
PNGDecodeParam pngParams = new PNGDecodeParam();
ImageDecoder dec = ImageCodec.createImageDecoder("png", s, pngParams);
RenderedImage pngImage = dec.decodeAsRenderedImage();
JPEGEncodeParam jparam = new JPEGEncodeParam();
jparam.setQuality(0.50f); // e.g. 0.25f
File jpeg = new File("jpeg.jpeg");
FileOutputStream out = new FileOutputStream(jpeg);

ImageEncoder encoder = ImageCodec.createImageEncoder("JPEG", out, jparam);

encoder.encode(pngImage);

s.close();

} catch (IOException e) {
ok = false;
e.printStackTrace();
}

return ok;
}

...

我以 JAI 异常结束 ->java.lang.RuntimeException: 只能写入 1 或 3 段字节数据。 在 com.sun.media.jai.codecimpl.JPEGImageEncoder.encode(JPEGImageEncoder.java:148) ...

选项用完了。有什么建议吗?

最佳答案

使用ImageIO可能更容易将 PNG 读入 BufferedImage并以 JPEG 格式写出图像。

附录:在这种方法中,转换由作者的 ImageTranscoder 透明地处理。 .

BufferedImage img = ImageIO.read(new File("image.png"));
ImageIO.write(img, "jpg", new File("image.jpg"));

关于java - 将 PNG 转换为 JPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2290336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com