请选择 进入手机版 | 继续访问电脑版

登录  | 立即注册

游客您好!登录后享受更多精彩

查看: 1057|回复: 0

【Java】图片转16进制

[复制链接]

444

主题

509

帖子

2051

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2051

荣誉管理论坛元老

发表于 2021-6-30 22:10:20 来自手机 | 显示全部楼层 |阅读模式 来自:
  1. import java.io.BufferedInputStream;  
    $ i6 g8 H1 O: B  f3 Q
  2. import java.io.BufferedReader;  ( S  P' q6 }* v0 X
  3. import java.io.File;  
    2 K2 c5 D  J+ W9 C% ]2 _
  4. import java.io.FileInputStream;  
    6 }" \% {3 q, \4 G% u$ m6 s
  5. import java.io.FileOutputStream;  
    & p5 C. L. \0 t$ ~
  6. import java.io.FileWriter;  
    ( Y1 j& C3 D8 K3 c7 O
  7. import java.io.IOException;  
    * N% K) L7 u5 o5 P2 |2 S7 B
  8. import java.io.InputStream;  
    8 O3 M# s* k% [  ^
  9. import java.io.InputStreamReader;  
    8 s) I! ?) x$ L7 l) G6 q; A. t
  10. import java.io.PrintWriter;  
      q9 N3 L+ m8 _% b4 F$ g# ^
  11.   
    6 C5 S# f/ S1 C7 x
  12. public class ImageToHex {  ) m( L1 ]  ~% K: U  y' K! [- H
  13.     public static void main(String[] args) throws Exception {  + d* f& J0 C. _
  14.       
    . u- Q  i$ f* D5 s* c. v
  15.     try{   
    ) E4 G) m  p8 k# P+ w5 y- K  a
  16.         StringBuffer sb = new StringBuffer();   ( Y) Y+ ^% R6 U! o, l
  17.         FileInputStream fis = new FileInputStream("f:/345.jpg");   
    $ k! W+ B3 [' U+ W% W! ~
  18.         BufferedInputStream bis = new BufferedInputStream(fis);   
    ; M  i" K9 o: C
  19.         java.io.ByteArrayOutputStream bos=new java.io.ByteArrayOutputStream();  ) w! w' y6 x5 b! T
  20.           9 H; }1 O5 d; i4 A, J5 \
  21.         byte[] buff=new byte[1024];  " F: G4 e/ g1 e; s
  22.         int len=0;  
    7 G0 h, [+ A* l
  23.         while((len=fis.read(buff))!=-1){  , U# ?# l5 ~2 |& [# i3 w; `
  24.             bos.write(buff,0,len);  ( h) g* z; F+ o5 f# V3 Z: l
  25.         }  
    5 C0 q3 Z- L) ~! P$ c
  26.         byte[] result=bos.toByteArray();  
    9 D' p; @, P: c/ c1 @( l* O
  27.       ( s+ o( v; h4 Y
  28.          
    7 D6 ^6 e1 J6 c5 _7 @
  29.         System.out.println("++++"+byte2HexStr(result));  0 q$ O" Q. P4 a7 Y: O3 _# c! \$ q
  30.         String str=byte2HexStr(result);  $ Q; Y/ a4 ~9 s, j8 t
  31.            pw.println(str);     ) b% o( ^$ S- m2 L0 u. d5 u
  32.            pw.close();  . i# x. [9 o# G. E, |5 Y
  33.         }catch(IOException e){   3 J/ x" y, A0 f: T
  34.         }   2 C5 L: n7 d: t5 E5 X" i! Y
  35.       
    : v4 `% Z3 N5 m3 y
  36. }  
    % W' f$ j+ r1 S  B( P
  37.     public static String byte2HexStr(byte[] b) {    Y: A% \% h8 Q6 Z$ O) K  o
  38.         String hs="";  1 F2 w1 I% v: i+ f# @4 l) y" o3 ^
  39.         String stmp="";  ( J. d3 L& q: v; w4 t6 r2 W. D
  40.         for (int n=0;n<b.length;n++) {  
    ! A7 K' I/ k* o5 l% f0 ^
  41.             stmp=(Integer.toHexString(b[n] & 0XFF));  
      L' A' H8 W( m# b
  42.             if (stmp.length()==1) hs=hs+"0"+stmp;  
    5 G7 l' C, c) F4 @. y$ ^
  43.             else hs=hs+stmp;  
    - [6 ~" y* ?& ~: M: N7 \) @
  44.         }  
    $ }- m- {: u- y: Y& v" J' l4 y
  45.         return hs.toUpperCase();  & s$ P0 ^/ S' p
  46.     }  
    ) w% q: y& G  P/ l) R: \8 f
  47.       
    2 @8 g. o* {# Y$ K1 b: L/ ]
  48.     private static byte uniteBytes(String src0, String src1) {  
      H: D- I* C. e# i2 L- p, s2 d; u
  49.         byte b0 = Byte.decode("0x" + src0).byteValue();  1 E( M7 R! L5 O% y0 X
  50.         b0 = (byte) (b0 << 4);  
    # h0 h; o% T, R2 h0 U3 m% ^- w! W
  51.         byte b1 = Byte.decode("0x" + src1).byteValue();  
    % f) n& x$ M- {+ X" \5 B
  52.         byte ret = (byte) (b0 | b1);  6 v3 l+ _. h9 D2 ?
  53.         return ret;  " n) S+ @8 E) G# ?$ u
  54.     }  
    ; ^' U, |* Y: x0 m9 D7 `/ F
  55.     public static String bytesToHexString(byte[] src){  : T* g' o# m: G+ Q+ c
  56.   
    1 e4 `1 c8 B* C) s# k$ Q! H$ S( u6 g
  57.         StringBuilder stringBuilder = new StringBuilder("");  
    * e' X1 P+ u! n$ n$ D* N" ]5 [
  58.         if (src == null || src.length <= 0) {  3 m6 Z( X. I$ j( j. l+ W0 Q1 r" _
  59.             return null;  - k! Q1 U+ u% }+ K# p
  60.         }  4 l# E$ c0 [7 r( B& x  p# f3 q
  61.         for (int i = 0; i < src.length; i++) {  
    6 p! t8 L. \3 Q/ J
  62.             int v = src[i] & 0xFF;  6 ~# _! V. r+ I/ w# V7 x  @
  63.             String hv = Integer.toHexString(v);  
    5 ^+ E, z# k3 j2 @( o
  64.             if (hv.length() < 2) {  9 M5 Y4 N2 R# Y+ Y4 W( Y( O
  65.                 stringBuilder.append(0);  0 Y9 A& Q0 K7 e% ^$ o
  66.             }  
    2 j" R7 z( Z- z, G; n' ^+ B
  67.             stringBuilder.append(hv);  6 x5 M( y2 t2 v! Y( O/ D9 |" W
  68.         }  9 n! x! \0 r/ d' h& |  L
  69.         return stringBuilder.toString();  # ^' o7 I6 b' l% A
  70.   
      |  a+ |# Z2 W. _3 N, e
  71.     }    a- n. R; {* e2 c" M% f
  72.   1 _, m, V* M, t; Q5 @5 `
  73.   
    7 x' Q% m) I# i: u+ B3 r
  74.   
      q2 B% j3 L2 x) `
  75. }
    9 b+ N* ^8 k9 F1 a0 i
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|星空社区 |网站地图

GMT+8, 2024-4-18 14:14 , Processed in 0.057129 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表