話不多說,直接上代碼
import java.awt.image.BufferedImage;
import java.awt.image.Raster;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class IOUtil {
public static void pgm2png(String src, String dest) throws IOException {
BufferedImage image = ImageIO.read(new File(src));
Raster source = image.getRaster();
int width = image.getWidth();
int height = image.getHeight();
// 創建BufferedImage對象
// BufferedImage image2 = new BufferedImage(width,
// height,BufferedImage.TYPE_BYTE_BINARY);//黑色
BufferedImage image2 = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);// 灰色
// BufferedImage image2 = new BufferedImage(width, height,
// BufferedImage.TYPE_BYTE_INDEXED);//黃色
image2.setData(source);
// 保存文件
ImageIO.write(image2, "png", new File(dest));
}
}
上述代碼中,有幾個參數需要在格式轉換的時候調整。\
new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY)的第三個參數,圖片格式類型
ImageIO.write(image2, "png", new File(dest)); 的第二個參數,轉換的目標圖片格式