java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/JPEGCodec


java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/JPEGCodec

 

这个类在 rt.jar 里面

本地开发,jre里有这个包,所以不会报错

但是在新的 jdk 版本中,这个类不推荐使用了,使用 ImageIO.write 方法替代

 

最新的代码如下:

(Java 压缩微信头像的工具方法)

从url获取压缩后的图片,以base64返回 ( data:image/jpeg;base64,) 

	public static String getCompressBase64FromUrl(String url, int width, int height) throws Exception {
		Image img = ImageIO.read(new URL(url));
		BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
		// Image.SCALE_SMOOTH 的缩略算法 生成缩略图片的平滑度的优先级比速度高 生成的图片质量比较好 但速度慢
		tag.getGraphics().drawImage(img.getScaledInstance(60, 60, Image.SCALE_SMOOTH), 0, 0, null);

		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		ImageIO.write(tag, "jpeg", baos); // 这里也可以传 FileOutputStream 写进文件里
		return new String(Base64.encodeBase64(baos.toByteArray()));
	}

 

// 原过时写法
// JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(baos);
// encoder.encode(tag);


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM