This article mainly introduces examples of conversion between Java processing images and base64 encoding. It has certain reference value. Those who are interested can learn about it
Today’s project has optimized the function of uploading avatars. Use the imagecropper plug-in to achieve the effect of cropping images.
The images cropped by this plug-in are all base64 encrypted strings. Uploading avatars also involves the issue of how to convert the encrypted strings into images.
The following is the code:
/** * @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; } }
Decryption naturally also involves encryption. The following is the encryption:
/** * @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); }
Post a test main function
/** * 示例 */ public static void main(String[] args) { String strImg = getImageStr("F:/86619-106.jpg"); System.out.println(strImg); generateImage(strImg, "F:/86619-107.jpg"); }
Okay, let’s call it a day.
However, it should be noted that the base64-encoded string returned by the general plug-in has a prefix.
"data:image/jpeg;base64," This must be removed before decoding.
The above is the detailed content of Examples of image processing and base64 encoding conversion in Java. For more information, please follow other related articles on the PHP Chinese website!