java图片与base64字符串之间的转换详解编程语言

public static void main(String[] args) { 
		String imgPath = "G:/Photos/1.jpg"; 
 
		String basePath = GetImageStr(imgPath); 
 
		System.out.println(GenerateImage(basePath)); 
 
	} 
 
	/** 
	 * 将图片文件转化为字节数组字符串,并对其进行Base64编码处理 
	 *  
	 * @param imgFilePath 
	 * @return 
	 */ 
	public static String GetImageStr(String imgFilePath) { 
		byte[] data = null; 
		// 读取图片字节数组 
		try { 
			InputStream in = new FileInputStream(imgFilePath); 
			data = new byte[in.available()]; 
			in.read(data); 
			in.close(); 
		} catch (IOException e) { 
			e.printStackTrace(); 
		} 
 
		// 对字节数组Base64编码 
		BASE64Encoder encoder = new BASE64Encoder(); 
		// 返回Base64编码过的字节数组字符串 
		return encoder.encode(data); 
	} 
 
	/** 
	 * 对字节数组字符串进行Base64解码并生成图片 
	 *  
	 * @param imgStr 
	 * @param filePath 
	 * @param fileName 
	 * @return 
	 */ 
	public static boolean GenerateImage(String imgStr) { 
		if (imgStr == null) { // 图像数据为空 
			return false; 
		} 
		BASE64Decoder decoder = new BASE64Decoder(); 
		try { 
 
			String newFileName = UUID.randomUUID().toString() + ".jpg"; 
			File file = new File("G:/", newFileName); 
			// Base64解码 
			byte[] bytes = decoder.decodeBuffer(imgStr); 
			for (int i = 0; i < bytes.length; ++i) { 
				if (bytes[i] < 0) {// 调整异常数据 
					bytes[i] += 256; 
				} 
			} 
			// FileUtils.writeByteArrayToFile(file, bytes); 
			Base64Decoder.GenerateImage(imgStr, "G:/" + newFileName); 
			return true; 
		} catch (Exception e) { 
			return false; 
		} 
	}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16340.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论