Maison  >  Article  >  Java  >  Exemples de traitement d'image et de conversion d'encodage base64 en Java

Exemples de traitement d'image et de conversion d'encodage base64 en Java

黄舟
黄舟original
2017-08-13 09:36:061511parcourir

Cet article présente principalement des exemples de conversion entre les images de traitement Java et l'encodage base64. Il a une certaine valeur de référence. Ceux qui sont intéressés peuvent en apprendre davantage

Le projet d'aujourd'hui a optimisé la fonction de téléchargement d'avatars. Utilisez le plug-in imagecropper pour obtenir l'effet de recadrage des images.

Les images recadrées par ce plug-in sont toutes des chaînes cryptées en base64. Le téléchargement d'avatars implique également la question de savoir comment convertir les chaînes cryptées en images.

Voici le code suivant :


/**
 * @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;
  }
}

Le décryptage a naturellement aussi un cryptage. Ce qui suit est le cryptage :


/**
 * @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);
}

Publier une fonction principale de test


/**
 * 示例
 */
public static void main(String[] args) {
  String strImg = getImageStr("F:/86619-106.jpg");
  System.out.println(strImg);
  generateImage(strImg, "F:/86619-107.jpg");
}

D'accord, appelez-le un jour.

Cependant, il convient de noter que la chaîne codée en base64 renvoyée par le plug-in général a un préfixe.

"data:image/jpeg;base64," Ceci doit être supprimé avant le décodage.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn