delphi 怎样将二进制字符串转化为图片文件

 我来答
龙氏风采
2017-11-16 · 知道合伙人互联网行家
龙氏风采
知道合伙人互联网行家
采纳数:5849 获赞数:12817
从事互联网运营推广,5年以上互联网运营推广经验,丰富的实战经

向TA提问 私信TA
展开全部

将一个图片转换成二进制编码,再将一个二进制字符串转换成为图片实例:

Java代码  

  • public class Test{  

  • public static void main(String[] args) {  

  • try{    

  • // 将图片转换成字符串    

  • File f = new File("c:\\biao.png");    

  • FileInputStream fis = new FileInputStream( f );    

  • byte[] bytes = new byte[fis.available()];    

  • fis.read(bytes);    

  • fis.close();    

  • // 生成字符串    

  • String imgStr = byte2hex( bytes );    

  • System.out.println( imgStr);    

  • // 将字符串转换成二进制,用于显示图片    

  • // 将上面生成的图片格式字符串 imgStr,还原成图片显示  

  • OutputStream o = new FileOutputStream("c:\\878789.png");    

  • byte[] imgByte = hex2byte( imgStr );    

  • InputStream in = new ByteArrayInputStream( imgByte );    

  • byte[] b = new byte[1024];    

  • int nRead = 0;    

  • while( ( nRead = in.read(b) ) != -1 ){    

  • o.write( b, 0, nRead );    

  • }    

  • o.flush();    

  • o.close();    

  • in.close();    

  • }catch(Exception e){    

  • e.printStackTrace();    

  • }finally{    

  • }    

  • }  

  • /** 

  • * 二进制转字符串 

  • * @param b byte数组 

  • * @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[n] & 0XFF);  

  • if (stmp.length() == 1) {  

  • sb.append("0" + stmp);  

  • } else {  

  • sb.append(stmp);  

  • }  

  • }  

  • return sb.toString();  

  • }  

  • /** 

  • * 字符串转二进制 

  • * @param str 字符串 

  • * @return byte数组 

  • */  

  • 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;  

  • }  

  • }  

  • }  

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式