将二进制字串转换成图片(记录用)(未试验是否可以)(备忘)
2016-11-17 18:14
288 查看
package com.text; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; /** * 将二进制流转换成图片文件 * * @author * */ public class ImgErToFileUtil { /** * 将接收的字符串转换成图片保存 * * @param imgStr * 二进制流转换的字符串 * @param imgPath * 图片的保存路径 * @param imgName * 图片的名称 * @return 1:保存正常 0:保存失败 */ public static int saveToImgByStr(String imgStr, String imgPath, String imgName) { try { System.out.println("===imgStr.length()====>" + imgStr.length() + "=====imgStr=====>" + imgStr); } catch (Exception e) { e.printStackTrace(); } int stateInt = 1; if (imgStr != null && imgStr.length() > 0) { try { // 将字符串转换成二进制,用于显示图片 // 将上面生成的图片格式字符串 imgStr,还原成图片显示 byte[] imgByte = hex2byte(imgStr); InputStream in = new ByteArrayInputStream(imgByte); File file = new File(imgPath, imgName);// 可以是任何图片格式.jpg,.png等 FileOutputStream fos = new FileOutputStream(file); byte[] b = new byte[1024]; int nRead = 0; while ((nRead = in.read(b)) != -1) { fos.write(b, 0, nRead); } fos.flush(); fos.close(); in.close(); } catch (Exception e) { stateInt = 0; e.printStackTrace(); } finally { } } return stateInt; } /** * 将二进制转换成图片保存 * * @param imgStr * 二进制流转换的字符串 * @param imgPath * 图片的保存路径 * @param imgName * 图片的名称 * @return 1:保存正常 0:保存失败 */ public static int saveToImgByBytes(File imgFile, String imgPath, String imgName) { int stateInt = 1; if (imgFile.length() > 0) { try { File file = new File(imgPath, imgName);// 可以是任何图片格式.jpg,.png等 FileOutputStream fos = new FileOutputStream(file); FileInputStream fis = new FileInputStream(imgFile); byte[] b = new byte[1024]; int nRead = 0; while ((nRead = fis.read(b)) != -1) { fos.write(b, 0, nRead); } fos.flush(); fos.close(); fis.close(); } catch (Exception e) { stateInt = 0; e.printStackTrace(); } finally { } } return stateInt; } /** * 二进制转字符串 * * @param b * @return */ public static String byte2hex(byte[] b) // 二进制转字符串 { StringBuffer sb = new StringBuffer(); String stmp = ""; for (int n = 0; n < b.length; n++) { stmp = Integer.toHexString(b & 0XFF); if (stmp.length() == 1) { sb.append("0" + stmp); } else { sb.append(stmp); } } return sb.toString(); } /** * 字符串转二进制 * * @param str * 要转换的字符串 * @return 转换后的二进制数组 */ public static byte[] hex2byte(String str) { // 字符串转二进制 if (str == null) return null; str = str.trim(); int len = str.length(); if (len == 0 || len % 2 == 1) return null; byte[] b = new byte[len / 2]; try { for (int i = 0; i < str.length(); i += 2) { b[i / 2] = (byte) Integer.decode("0X" + str.substring(i, i + 2)).intValue(); } return b; } catch (Exception e) { return null; } } }
相关文章推荐
- BLOG挺有意思,只是如何添加图片呢,不知道这个背景是否可以换掉
- 在PB中控制一条记录是否可以被修改
- Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- 将图片转换成二进制数据
- Flex中ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- 今天有人问是否可以使用vs2005开发,回答了一下,记录下来
- 将图片转换成二进制存入到数据库
- 网络图片 二进制 字符串 转换
- 二进制--图片相互转换
- 根据图片路径把图片转换成二进制
- 如何用最简单最快的方法判断一个BMP图片是否为黑白图片?我现在是全图片scanline 然后再加以分析,太慢了,有没有直接的函数可以做到呢?
- C# 图片转换成二进制,二进制转换成图片
- 用FileStream上传图片转换成二进制,在本地用行,传到服务器上去出现如下错误
- Android图片二进制与Bitmap、Drawable之间的转换
- 用FileStream上传图片转换成二进制,在本地用行,传到服务器上去出现如下错误
- 判断字符串是否可以转换成日期类型
- Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- 一个可以把图片转换成.ico格式的网站
- C#判断字符串是否可以转换为长整型值
- [笔记]一道C语言面试题:判断字串是否可以通过重新排列字母使之对称