如何用Java將PNG轉成webP

 

網站上的圖片,不管是JPG或是PNG,即使壓縮了。仍然有一定的分量。

Google為眾人熟知的在於搜尋引擎,沒想到在2010年9月推出了新的圖片格式– webP。

時事今日大部分的瀏覽器都已經可以支援此類的圖片,但是,並非所有的繪圖軟體都能產生webP的格式。

網路上有有很多提供,將PNG,JPG等圖片轉換成webP的免費服務,只不過轉換之後,檔名跟原來的有所差異,

而且必須一張一張轉,還是有點費事。

身為工程師,就是要將繁瑣費事的事情,交給電腦來處理啊!

果然。在網路上可以找到 webp-imageio-core 用它來幫助我們轉換圖片。

測試平台:

  • win10
  • jdk 8
  • webp-imageio-core-0.1.0.jar
  • webp-imageio-core-0.1.3.jar(測試不成功,java.lang.UnsatisfiedLinkError: C:\Users\suna\AppData\Local\Temp\webp-imageio5383482825944252218.dll: Can’t find dependent libraries)

用Java將PNG轉成webP

以下是程式碼,請享用!

 

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriter;
import javax.imageio.stream.FileImageOutputStream;

import com.luciad.imageio.webp.WebPWriteParam;

public class TransPng {

	public static void main(String[] args) throws FileNotFoundException, IOException {
		  String inputPngPath = "G:/test/get4health.png";
		  //String inputJpgPath = "test_pic/test.jpg";
		  String outputWebpPath = "G:/test/get4health.webp";

		  // Obtain an image to encode from somewhere
		  BufferedImage image = ImageIO.read(new File(inputPngPath));

		  // Obtain a WebP ImageWriter instance
		  ImageWriter writer = ImageIO.getImageWritersByMIMEType("image/webp").next();

		  // Configure encoding parameters
		  WebPWriteParam writeParam = new WebPWriteParam(writer.getLocale());
		  writeParam.setCompressionMode(WebPWriteParam.MODE_DEFAULT);

		  // Configure the output on the ImageWriter
		  writer.setOutput(new FileImageOutputStream(new File(outputWebpPath)));

		  // Encode
		  writer.write(null, new IIOImage(image, null, null), writeParam);

	}

}