Maison > Java > javaDidacticiel > 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

黄舟
Libérer: 2017-08-13 09:36:06
original
1557 Les gens l'ont consulté

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;
  }
}
Copier après la connexion

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);
}
Copier après la connexion

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");
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal