importcom.luciad.imageio.webp.WebPReadParam;importcom.luciad.imageio.webp.WebPWriteParam;importjavax.imageio.IIOImage;importjavax.imageio.ImageIO;importjavax.imageio.ImageReader;importjavax.imageio.ImageWriter;importjavax.imageio.stream.FileImageInputStream;importjavax.imageio.stream.FileImageOutputStream;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.IOException;publicclassWebpKits{publicstaticStringwebp2png(String src,String dst)throwsIOException{// Obtain a WebP ImageReader instanceImageReader reader =ImageIO.getImageReadersByMIMEType("image/webp").next();// Configure decoding parametersWebPReadParam readParam =newWebPReadParam();
readParam.setBypassFiltering(true);// Configure the input on the ImageReader
reader.setInput(newFileImageInputStream(newFile(src)));// Decode the imageBufferedImage image = reader.read(0, readParam);//the `png` can use `jpg`ImageIO.write(image,"png",newFile(dst));return dst;}publicstaticStringpng2webp(String src,String dst)throwsIOException{// Obtain an image to encode from somewhereBufferedImage image =ImageIO.read(newFile(src));// Obtain a WebP ImageWriter instanceImageWriter writer =ImageIO.getImageWritersByMIMEType("image/webp").next();// Configure encoding parametersWebPWriteParam writeParam =newWebPWriteParam(writer.getLocale());
writeParam.setCompressionMode(WebPWriteParam.MODE_DEFAULT);// Configure the output on the ImageWriter
writer.setOutput(newFileImageOutputStream(newFile(dst)));// Encode
writer.write(null,newIIOImage(image,null,null), writeParam);return dst;}}