이 글에서는 주로 Java 처리 이미지와 Base64 인코딩 간 변환 사례를 소개합니다. 관심 있는 분들은 참고할 만한 가치가 있습니다.
오늘 프로젝트에서는 아바타 업로드 기능을 최적화했습니다. 이미지 자르기 효과를 얻으려면 imagecropper 플러그인을 사용하세요.
이 플러그인으로 자른 이미지는 모두 base64 암호화 문자열입니다. 아바타 업로드에는 암호화된 문자열을 이미지로 변환하는 방법에 대한 문제도 포함됩니다.
다음 코드는 다음과 같습니다.
/** * @Description: 将base64编码字符串转换为图片 * @Author: * @CreateTime: * @param imgStr base64编码字符串 * @param path 图片路径-具体到文件 * @return */ public static boolean generateImage(String imgStr, String path) { if (imgStr == null) return false; BASE64Decoder decoder = new BASE64Decoder(); try { // 解密 byte[] b = decoder.decodeBuffer(imgStr); // 处理数据 for (int i = 0; i < b.length; ++i) { if (b[i] < 0) { b[i] += 256; } } OutputStream out = new FileOutputStream(path); out.write(b); out.flush(); out.close(); return true; } catch (Exception e) { return false; } }
복호화에는 당연히 암호화도 있습니다. 암호화 내용은 다음과 같습니다.
/** * @Description: 根据图片地址转换为base64编码字符串 * @Author: * @CreateTime: * @return */ public static String getImageStr(String imgFile) { InputStream inputStream = null; byte[] data = null; try { inputStream = new FileInputStream(imgFile); data = new byte[inputStream.available()]; inputStream.read(data); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } // 加密 BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(data); }
테스트 메인 기능 게시
/** * 示例 */ public static void main(String[] args) { String strImg = getImageStr("F:/86619-106.jpg"); System.out.println(strImg); generateImage(strImg, "F:/86619-107.jpg"); }
좋아, 일단 하자.
단, 일반 플러그인에서 반환하는 base64 인코딩 문자열에는 접두사가 있다는 점에 유의해야 합니다.
"data:image/jpeg;base64," 이는 디코딩하기 전에 제거해야 합니다.
위 내용은 Java의 이미지 처리 및 base64 인코딩 변환 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!