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