日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java网络图片与二进制字符串相互转换

發布時間:2025/3/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java网络图片与二进制字符串相互转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

  • /** ?
  • ?*?@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?p_w_picpath?=?new?BufferedImage(300,?300,BufferedImage.TYPE_BYTE_BINARY); ?
  • ????ByteArrayOutputStream?byteOutputStream?=?new?ByteArrayOutputStream(); ?
  • ????try?{ ?
  • ????????ImageIO.write(p_w_picpath,?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); ?
  • }?
  • ?

    轉載于:https://blog.51cto.com/dreamboy/916888

    總結

    以上是生活随笔為你收集整理的java网络图片与二进制字符串相互转换的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。