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

登录  | 立即注册

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

查看: 265|回复: 0

【Java】图片转16进制

[复制链接]

441

主题

506

帖子

1944

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1944

荣誉管理论坛元老

发表于 2021-6-30 22:10:20 来自手机 | 显示全部楼层 |阅读模式 来自:
  1. import java.io.BufferedInputStream;  
    & r2 v5 i  j2 s7 N
  2. import java.io.BufferedReader;  
    - D' X" c" J5 a- B5 C/ H5 {: c: j
  3. import java.io.File;  
    7 D, y& N6 n' ?: z1 e' n+ ~
  4. import java.io.FileInputStream;  
    6 {. {1 G; Z8 Y- a; g
  5. import java.io.FileOutputStream;  
    3 I& h; Y1 [6 H& d+ \/ y
  6. import java.io.FileWriter;  
    ( }7 Y8 E; H5 ?, j9 y4 i1 M
  7. import java.io.IOException;  
      U; X" h6 ~; E* C. j, }) ?
  8. import java.io.InputStream;  % V6 p3 D; X3 \9 Z  e- O/ k, [
  9. import java.io.InputStreamReader;  ( U/ X8 I! A" ~% i) d
  10. import java.io.PrintWriter;  " V- r1 O+ F2 X4 m8 R
  11.   : D9 v( N/ d" @% u) Y" X" }' ~& f
  12. public class ImageToHex {  " D- Z2 d9 u7 C5 b9 [, K: \
  13.     public static void main(String[] args) throws Exception {  
    2 \2 {1 `/ W' O  j5 ~0 s. c
  14.       & y* i. ~$ s5 T4 r4 S2 i- e
  15.     try{   
    8 G7 z2 Z% t9 ]& R
  16.         StringBuffer sb = new StringBuffer();   * r  t2 K6 v7 \
  17.         FileInputStream fis = new FileInputStream("f:/345.jpg");   
    5 Q2 S4 ^5 @2 A
  18.         BufferedInputStream bis = new BufferedInputStream(fis);   
    / j: Y1 ~4 r1 \+ ^  H
  19.         java.io.ByteArrayOutputStream bos=new java.io.ByteArrayOutputStream();  1 h) f# @4 C7 r3 c# e
  20.           . Y0 S1 f6 M+ P: b" B0 _' j
  21.         byte[] buff=new byte[1024];  
    ; Z1 [2 x' D) g. v" ?8 i  Y6 f
  22.         int len=0;  1 `$ B' a! L4 r/ {
  23.         while((len=fis.read(buff))!=-1){  
    : \9 O- A# C) s- i$ ]
  24.             bos.write(buff,0,len);  
    * ~; Y$ s( Z) o3 R! |
  25.         }  5 [. L% M1 @6 [' ?/ t$ ^8 g5 ]# \
  26.         byte[] result=bos.toByteArray();  
    ; r, j3 e" q+ Q2 E! L5 O8 N
  27.       
    9 Y) U- w4 U& @' k5 Z% N. K
  28.           , a( u9 m. |2 W& u- R8 S
  29.         System.out.println("++++"+byte2HexStr(result));  
    2 T6 O. k3 s1 n& h
  30.         String str=byte2HexStr(result);  * `( O6 k, B( J) V$ D% T8 H, f: \+ D
  31.            pw.println(str);     
    + H; Y, ~8 [9 v; L% l0 M
  32.            pw.close();  
    " ~6 y+ |' t5 Z3 v3 S
  33.         }catch(IOException e){   * A. Y9 d# l6 a/ v) S
  34.         }   
    2 t% n: o( w% k
  35.       
    7 O0 w- i) ^* r. [$ o5 K
  36. }  
    ; I, E. h( p1 w$ k
  37.     public static String byte2HexStr(byte[] b) {  4 f  R9 A+ R- J
  38.         String hs="";  / N! ]: L- N2 y& e0 b
  39.         String stmp="";  + C* N% u; ^0 i
  40.         for (int n=0;n<b.length;n++) {  . G- s0 S7 i' c$ ]% J
  41.             stmp=(Integer.toHexString(b[n] & 0XFF));  & N! B& ?# Q( z3 C% u: A/ i  ~
  42.             if (stmp.length()==1) hs=hs+"0"+stmp;  6 U* L/ Z  _, H
  43.             else hs=hs+stmp;  
    ) T" X6 L' f- G8 z1 G' N, h/ G! a
  44.         }  
    6 p: b, v# `$ B8 n* r3 G
  45.         return hs.toUpperCase();  . Z. l! d2 y/ }4 o, R+ x
  46.     }  
    7 o$ L8 `4 z, A! u  Q  B3 e# w! }2 F
  47.         p( V$ ]- R  Q/ B; o
  48.     private static byte uniteBytes(String src0, String src1) {  : p' \4 r0 `" w% Y2 u2 z
  49.         byte b0 = Byte.decode("0x" + src0).byteValue();  
    3 b: u) X5 i2 Y: g2 z1 F
  50.         b0 = (byte) (b0 << 4);  ! w& d5 k. z) I6 @' R
  51.         byte b1 = Byte.decode("0x" + src1).byteValue();  
    - Q; p8 R. i4 l( r
  52.         byte ret = (byte) (b0 | b1);  & y7 B) e4 a- F5 u: H5 c
  53.         return ret;  
    6 |$ ~1 b" U2 J- k" w: R
  54.     }    X! l. J- N+ {! k
  55.     public static String bytesToHexString(byte[] src){  * J1 F, M% B. d( \7 o2 u
  56.   
    6 k4 G( \4 [+ ~' o8 }
  57.         StringBuilder stringBuilder = new StringBuilder("");  
    9 O/ A6 j$ {( T5 ?; @9 x; d/ u
  58.         if (src == null || src.length <= 0) {  ) @- ~) f& V1 f" o) s; R8 k
  59.             return null;  
    - F3 H) c6 s# B* i
  60.         }  
    ' b$ f6 a7 y, K
  61.         for (int i = 0; i < src.length; i++) {  : A8 J7 {$ j- w3 d& ~7 n
  62.             int v = src[i] & 0xFF;  
    9 f3 C( ~& e9 E/ c2 }" c
  63.             String hv = Integer.toHexString(v);  
    : w" w) T% l5 M1 B- P- z; _
  64.             if (hv.length() < 2) {  
    $ {/ d5 f0 e0 U' K
  65.                 stringBuilder.append(0);  + t1 y) z( W% w: E
  66.             }  * x) G: l0 Q7 ]8 x. R  ~9 K" z
  67.             stringBuilder.append(hv);  / C! ^" ^" n8 S# L; i
  68.         }  ) k& h8 p9 s6 K% F
  69.         return stringBuilder.toString();  
    % ?7 b3 M% m( T- X8 a+ R
  70.   
    3 G) @, p; [- c9 w! {) [- q, a
  71.     }  / B8 Q( V+ [$ O% K
  72.   
    : a# f8 n% T8 J- R" }  O: B
  73.   % N1 T, ]$ o7 }/ I: q/ Y" X
  74.   
    5 @$ T+ o7 N0 V) G8 s" J8 l' t: f
  75. }# a- ]% y% o9 N: v4 Y
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|星空社区

GMT+8, 2022-8-11 23:13 , Processed in 0.091603 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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