小编Nor*_*rto的帖子

将PNG转换为JPEG

我在将简单的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;
}
Run Code Online (Sandbox Code Playgroud)

...

我最终得到了一个JAI异常 - > java.lang.RuntimeException:只能写入1或3波段字节数据.在com.sun.media.jai.codecimpl.JPEGImageEncoder.encode(JPEGImageEncoder.java:148)...

跑出选项.有什么建议吗?

java png jpeg image jai

13
推荐指数
5
解决办法
2万
查看次数

标签 统计

image ×1

jai ×1

java ×1

jpeg ×1

png ×1