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

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

 

這個類在 rt.jar 裏面算法

本地開發,jre裏有這個包,因此不會報錯微信

可是在新的 jdk 版本中,這個類不推薦使用了,使用 ImageIO.write 方法替代工具

 

最新的代碼以下:url

(Java 壓縮微信頭像的工具方法)spa

從url獲取壓縮後的圖片,以base64返回 ( data:image/jpeg;base64,) code

	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); blog

相關文章
相關標籤/搜索