java网络图片和二进制字符串间的转换
来源:互联网 发布:java成绩代码 编辑:程序博客网 时间:2024/05/27 01:40
/** * @Title getImgeHexString * @Description 网络图片转换成二进制字符串 * @param URLName 网络图片地址 * @param type 图片类型 * @return String 转换结果 * @throws */ public static String getImgeHexString(String URLName,String type) { String res = null; try { int HttpResult = 0; // 服务器返回的状态 URL url = new URL(URLName); // 创建URL URLConnection urlconn = url.openConnection(); // 试图连接并取得返回状态码 urlconn.connect(); HttpURLConnection httpconn = (HttpURLConnection) urlconn; HttpResult = httpconn.getResponseCode(); System.out.println(HttpResult); if (HttpResult != HttpURLConnection.HTTP_OK) // 不等于HTTP_OK则连接不成功 System.out.print("fail"); else { BufferedInputStream bis = new BufferedInputStream(urlconn.getInputStream()); BufferedImage bm = ImageIO.read(bis); ByteArrayOutputStream bos = new ByteArrayOutputStream(); ImageIO.write(bm, type, bos); bos.flush(); byte[] data = bos.toByteArray(); res = byte2hex(data); bos.close(); } } catch (Exception e) { e.printStackTrace(); } return res; } /** * @title 根据二进制字符串生成图片 * @param data 生成图片的二进制字符串 * @param fileName 图片名称(完整路径) * @param type 图片类型 * @return */ public static void saveImage(String data, String fileName,String type) { BufferedImage image = new BufferedImage(300, 300,BufferedImage.TYPE_BYTE_BINARY); ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream(); try { ImageIO.write(image, type, byteOutputStream); // byte[] date = byteOutputStream.toByteArray(); byte[] bytes = hex2byte(data); System.out.println("path:" + fileName); RandomAccessFile file = new RandomAccessFile(fileName, "rw"); file.write(bytes); file.close(); } catch (IOException e) { e.printStackTrace(); } } /** * 反格式化byte * * @param s * @return */ public static byte[] hex2byte(String s) { byte[] src = s.toLowerCase().getBytes(); byte[] ret = new byte[src.length / 2]; for (int i = 0; i < src.length; i += 2) { byte hi = src[i]; byte low = src[i + 1]; hi = (byte) ((hi >= 'a' && hi <= 'f') ? 0x0a + (hi - 'a') : hi - '0'); low = (byte) ((low >= 'a' && low <= 'f') ? 0x0a + (low - 'a') : low - '0'); ret[i / 2] = (byte) (hi << 4 | low); } return ret; } /** * 格式化byte * * @param b * @return */ public static String byte2hex(byte[] b) { char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; char[] out = new char[b.length * 2]; for (int i = 0; i < b.length; i++) { byte c = b[i]; out[i * 2] = Digit[(c >>> 4) & 0X0F]; out[i * 2 + 1] = Digit[c & 0X0F]; } return new String(out); }
1 0
- java网络图片和二进制字符串间的转换
- 网络图片 二进制 字符串 转换
- Java中二进制和字符串之间的相互转换
- java 字符串和二进制相互转换
- java二进制与图片之间的转换
- C# 图片和二进制之间的转换
- C# 图片和二进制之间的转换
- C# 图片和二进制之间的转换
- 图片文件和二进制流的转换
- c#图片和二进制之间的转换
- (3)网络字节序二进制和ASC字符串转换
- Linux网络编程--字符串IP和二进制IP转换
- Linux网络编程--字符串IP和二进制IP转换
- 图片的二进制转换
- java图片二进制相互转换
- java图片二进制相互转换
- java实现图片和字符串互相转换的代码
- java io流 图片和字符串之间的转换
- NSHomeDirectory();
- Java内存泄漏的几大原因及预防检测
- python 正则表达式
- Java概述
- 采用Windows 2008 R2 单网卡搭建vpn实战设置
- java网络图片和二进制字符串间的转换
- 大二寒假如何规划自己的编程生活
- IOS开发block的分析与运用系列
- 风后法规和法国花粉管很热天
- 【BZOJ 3040】 最短路(road)
- Win8连接VPN出现850/812错误
- CDN和镜像站点比较
- 微信分享 使用weixin js sdk 兼容 旧版本
- WinPcap发送接收裸包(二)