自己想要实现的图片无损压缩实现不了(500W像素的图片,不知道为什么压缩后还是那么大),忽然看到windows画图中的改变图片的宽和高的功能,对呀,既然无损压缩做不了,那就改变一下图片的宽和高,简单的弄一下吧,损就损吧。
// 将要处理的图片读入
BufferedImage img = ImageIO.read(new File("D:\\Program Files\\myftp\\1.jpg"));
int w = img.getWidth();
int h = img.getHeight();
// 要输出的文件
FileOutputStream newImgFile = new FileOutputStream("D:\\Program Files\\myftp\\greate.jpg");
// 新建缓存图片对象
BufferedImage newImg = new BufferedImage(w/2, h/2,BufferedImage.TYPE_INT_RGB);
// 用新建的对象将要处理的图片重新绘制,宽高是原来的一半
newImg.getGraphics().drawImage(img, 0, 0, w/2, h/2, null);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newImgFile);
// 将图片重新编码
encoder.encode(newImg);
newImgFile.close();
哈哈,图片还是那么清晰,毕竟500W像素嘛,嗯,嗯····