PNG图像有自己特殊的格式,而这个格式可以通过十六进制字节流很清楚地看出。
有关PNG格式的讲解我是参考这位老师的:http://www.cnblogs.com/lidabo/p/3701197.html
将图片转为十六进制字节数组的代码是参考这位老师的:http://blog.csdn.net/evangel_z/article/details/7453402
为了能更直观地比较,我稍做了些改动。代码如下:
<span style="font-size:14px;">package png;
import java.io.FileInputStream;
/**
* 图片转成十六进制
*/
public class PngBytes {
public static void main(String[] args) throws Exception {
try {
FileInputStream fis = new FileInputStream("image/1.png");
java.io.ByteArrayOutputStream bos = new java.io.ByteArrayOutputStream();
byte[] buff = new byte[1024];
int len = 0;
while ((len = fis.read(buff)) != -1)
{
bos.write(buff, 0, len);
}
// 得到图片的字节数组
byte[] result = bos.toByteArray();
System.out.println("图片的字节数组:\n" + byte2HexStr(result));
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
/*
* 实现字节数组向十六进制的转换方法一
*/
public static String byte2HexStr(byte[] b)
{
System.out.print("b.length:"+b.length+"\n");
String hs = "";
String stmp = "";
for (int n = 0; n < b.length; n++)
{
stmp = (Integer.toHexString(b[n] & 0XFF));
if (stmp.length() == 1) {
hs = hs + "0" + stmp;
}else{
hs = hs + stmp;
}
hs+=' ';
if(n!=0 && (n+1)%16==0){
hs+='\n';
}
}
return hs.toUpperCase();
}
}
</span>
之前新建了一个8*8的PNG图像用来测试,其在Ultra Edit中打开的效果如下:
java项目的控制台效果如下:
- b.length:2799
- 图片的字节数组:
- 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52
- 00 00 00 08 00 00 00 08 08 06 00 00 00 C4 0F BE
- 8B 00 00 00 09 70 48 59 73 00 00 0E C3 00 00 0E
- C3 01 C7 6F A8 64 00 00 0A 4D 69 43 43 50 50 68
- 6F 74 6F 73 68 6F 70 20 49 43 43 20 70 72 6F 66
- 69 6C 65 00 00 78 DA 9D 53 77 58 93 F7 16 3E DF
- F7 65 0F 56 42 D8 F0 B1 97 6C 81 00 22 23 AC 08
- C8 10 59 A2 10 92 00 61 84 10 12 40 C5 85 88 0A
- 56 14 15 11 9C 48 55 C4 82 D5 0A 48 9D 88 E2 A0
- 28 B8 67 41 8A 88 5A 8B 55 5C 38 EE 1F DC A7 B5
- 7D 7A EF ED ED FB D7 FB BC E7 9C E7 FC CE 79 CF
- 0F 80 11 12 26 91 E6 A2 6A 00 39 52 85 3C 3A D8
- 1F 8F 4F 48 C4 C9 BD 80 02 15 48 E0 04 20 10 E6
- CB C2 67 05 C5 00 00 F0 03 79 78 7E 74 B0 3F FC
- 01 AF 6F 00 02 00 70 D5 2E 24 12 C7 E1 FF 83 BA
- 50 26 57 00 20 91 00 E0 22 12 E7 0B 01 90 52 00
- C8 2E 54 C8 14 00 C8 18 00 B0 53 B3 64 0A 00 94
- 00 00 6C 79 7C 42 22 00 AA 0D 00 EC F4 49 3E 05
- 00 D8 A9 93 DC 17 00 D8 A2 1C A9 08 00 8D 01 00
- 99 28 47 24 02 40 BB 00 60 55 81 52 2C 02 C0 C2
- 00 A0 AC 40 22 2E 04 C0 AE 01 80 59 B6 32 47 02
- 80 BD 05 00 76 8E 58 90 0F 40 60 00 80 99 42 2C
- CC 00 20 38 02 00 43 1E 13 CD 03 20 4C 03 A0 30
- D2 BF E0 A9 5F 70 85 B8 48 01 00 C0 CB 95 CD 97
- 4B D2 33 14 B8 95 D0 1A 77 F2 F0 E0 E2 21 E2 C2
- 6C B1 42 61 17 29 10 66 09 E4 22 9C 97 9B 23 13
- 48 E7 03 4C CE 0C 00 00 1A F9 D1 C1 FE 38 3F 90
- E7 E6 E4 E1 E6 66 E7 6C EF F4 C5 A2 FE 6B F0 6F
- 22 3E 21 F1 DF FE BC 8C 02 04 00 10 4E CF EF DA
- 5F E5 E5 D6 03 70 C7 01 B0 75 BF 6B A9 5B 00 DA
- 56 00 68 DF F9 5D 33 DB 09 A0 5A 0A D0 7A F9 8B
- 79 38 FC 40 1E 9E A1 50 C8 3C 1D 1C 0A 0B 0B ED
- 25 62 A1 BD 30 E3 8B 3E FF 33 E1 6F E0 8B 7E F6
- FC 40 1E FE DB 7A F0 00 71 9A 40 99 AD C0 A3 83
- FD 71 61 6E 76 AE 52 8E E7 CB 04 42 31 6E F7 E7
- 23 FE C7 85 7F FD 8E 29 D1 E2 34 B1 5C 2C 15 8A
- F1 58 89 B8 50 22 4D C7 79 B9 52 91 44 21 C9 95
- E2 12 E9 7F 32 F1 1F 96 FD 09 93 77 0D 00 AC 86
- 4F C0 4E B6 07 B5 CB 6C C0 7E EE 01 02 8B 0E 58
- D2 76 00 40 7E F3 2D 8C 1A 0B 91 00 10 67 34 32
- 79 F7 00 00 93 BF F9 8F 40 2B 01 00 CD 97 A4 E3
- 00 00 BC E8 18 5C A8 94 17 4C C6 08 00 00 44 A0
- 81 2A B0 41 07 0C C1 14 AC C0 0E 9C C1 1D BC C0
- 17 02 61 06 44 40 0C 24 C0 3C 10 42 06 E4 80 1C
- 0A A1 18 96 41 19 54 C0 3A D8 04 B5 B0 03 1A A0
- 11 9A E1 10 B4 C1 31 38 0D E7 E0 12 5C 81 EB 70
- 17 06 60 18 9E C2 18 BC 86 09 04 41 C8 08 13 61
- 21 3A 88 11 62 8E D8 22 CE 08 17 99 8E 04 22 61
- 48 34 92 80 A4 20 E9 88 14 51 22 C5 C8 72 A4 02
- A9 42 6A 91 5D 48 23 F2 2D 72 14 39 8D 5C 40 FA
- 90 DB C8 20 32 8A FC 8A BC 47 31 94 81 B2 51 03
- D4 02 75 40 B9 A8 1F 1A 8A C6 A0 73 D1 74 34 0F
- 5D 80 96 A2 6B D1 1A B4 1E 3D 80 B6 A2 A7 D1 4B
- E8 75 74 00 7D 8A 8E 63 80 D1 31 0E 66 8C D9 61
- 5C 8C 87 45 60 89 58 1A 26 C7 16 63 E5 58 35 56
- 8F 35 63 1D 58 37 76 15 1B C0 9E 61 EF 08 24 02
- 8B 80 13 EC 08 5E 84 10 C2 6C 82 90 90 47 58 4C
- 58 43 A8 25 EC 23 B4 12 BA 08 57 09 83 84 31 C2
- 27 22 93 A8 4F B4 25 7A 12 F9 C4 78 62 3A B1 90
- 58 46 AC 26 EE 21 1E 21 9E 25 5E 27 0E 13 5F 93
- 48 24 0E C9 92 E4 4E 0A 21 25 90 32 49 0B 49 6B
- 48 DB 48 2D A4 53 A4 3E D2 10 69 9C 4C 26 EB 90
- 6D C9 DE E4 08 B2 80 AC 20 97 91 B7 90 0F 90 4F
- 92 FB C9 C3 E4 B7 14 3A C5 88 E2 4C 09 A2 24 52
- A4 94 12 4A 35 65 3F E5 04 A5 9F 32 42 99 A0 AA
- 51 CD A9 9E D4 08 AA 88 3A 9F 5A 49 6D A0 76 50
- 2F 53 87 A9 13 34 75 9A 25 CD 9B 16 43 CB A4 2D
- A3 D5 D0 9A 69 67 69 F7 68 2F E9 74 BA 09 DD 83
- 1E 45 97 D0 97 D2 6B E8 07 E9 E7 E9 83 F4 77 0C
- 0D 86 0D 83 C7 48 62 28 19 6B 19 7B 19 A7 18 B7
- 19 2F 99 4C A6 05 D3 97 99 C8 54 30 D7 32 1B 99
- 67 98 0F 98 6F 55 58 2A F6 2A 7C 15 91 CA 12 95
- 3A 95 56 95 7E 95 E7 AA 54 55 73 55 3F D5 79 AA
- 0B 54 AB 55 0F AB 5E 56 7D A6 46 55 B3 50 E3 A9
- 09 D4 16 AB D5 A9 1D 55 BB A9 36 AE CE 52 77 52
- 8F 50 CF 51 5F A3 BE 5F FD 82 FA 63 0D B2 86 85
- 46 A0 86 48 A3 54 63 B7 C6 19 8D 21 16 C6 32 65
- F1 58 42 D6 72 56 03 EB 2C 6B 98 4D 62 5B B2 F9
- EC 4C 76 05 FB 1B 76 2F 7B 4C 53 43 73 AA 66 AC
- 66 91 66 9D E6 71 CD 01 0E C6 B1 E0 F0 39 D9 9C
- 4A CE 21 CE 0D CE 7B 2D 03 2D 3F 2D B1 D6 6A AD
- 66 AD 7E AD 37 DA 7A DA BE DA 62 ED 72 ED 16 ED
- EB DA EF 75 70 9D 40 9D 2C 9D F5 3A 6D 3A F7 75
- 09 BA 36 BA 51 BA 85 BA DB 75 CF EA 3E D3 63 EB
- 79 E9 09 F5 CA F5 0E E9 DD D1 47 F5 6D F4 A3 F5
- 17 EA EF D6 EF D1 1F 37 30 34 08 36 90 19 6C 31
- 38 63 F0 CC 90 63 E8 6B 98 69 B8 D1 F0 84 E1 A8
- 11 CB 68 BA 91 C4 68 A3 D1 49 A3 27 B8 26 EE 87
- 67 E3 35 78 17 3E 66 AC 6F 1C 62 AC 34 DE 65 DC
- 6B 3C 61 62 69 32 DB A4 C4 A4 C5 E4 BE 29 CD 94
- 6B 9A 66 BA D1 B4 D3 74 CC CC C8 2C DC AC D8 AC
- C9 EC 8E 39 D5 9C 6B 9E 61 BE D9 BC DB FC 8D 85
- A5 45 9C C5 4A 8B 36 8B C7 96 DA 96 7C CB 05 96
- 4D 96 F7 AC 98 56 3E 56 79 56 F5 56 D7 AC 49 D6
- 5C EB 2C EB 6D D6 57 6C 50 1B 57 9B 0C 9B 3A 9B
- CB B6 A8 AD 9B AD C4 76 9B 6D DF 14 E2 14 8F 29
- D2 29 F5 53 6E DA 31 EC FC EC 0A EC 9A EC 06 ED
- 39 F6 61 F6 25 F6 6D F6 CF 1D CC 1C 12 1D D6 3B
- 74 3B 7C 72 74 75 CC 76 6C 70 BC EB A4 E1 34 C3
- A9 C4 A9 C3 E9 57 67 1B 67 A1 73 9D F3 35 17 A6
- 4B 90 CB 12 97 76 97 17 53 6D A7 8A A7 6E 9F 7A
- CB 95 E5 1A EE BA D2 B5 D3 F5 A3 9B BB 9B DC AD
- D9 6D D4 DD CC 3D C5 7D AB FB 4D 2E 9B 1B C9 5D
- C3 3D EF 41 F4 F0 F7 58 E2 71 CC E3 9D A7 9B A7
- C2 F3 90 E7 2F 5E 76 5E 59 5E FB BD 1E 4F B3 9C
- 26 9E D6 30 6D C8 DB C4 5B E0 BD CB 7B 60 3A 3E
- 3D 65 FA CE E9 03 3E C6 3E 02 9F 7A 9F 87 BE A6
- BE 22 DF 3D BE 23 7E D6 7E 99 7E 07 FC 9E FB 3B
- FA CB FD 8F F8 BF E1 79 F2 16 F1 4E 05 60 01 C1
- 01 E5 01 BD 81 1A 81 B3 03 6B 03 1F 04 99 04 A5
- 07 35 05 8D 05 BB 06 2F 0C 3E 15 42 0C 09 0D 59
- 1F 72 93 6F C0 17 F2 1B F9 63 33 DC 67 2C 9A D1
- 15 CA 08 9D 15 5A 1B FA 30 CC 26 4C 1E D6 11 8E
- 86 CF 08 DF 10 7E 6F A6 F9 4C E9 CC B6 08 88 E0
- 47 6C 88 B8 1F 69 19 99 17 F9 7D 14 29 2A 32 AA
- 2E EA 51 B4 53 74 71 74 F7 2C D6 AC E4 59 FB 67
- BD 8E F1 8F A9 8C B9 3B DB 6A B6 72 76 67 AC 6A
- 6C 52 6C 63 EC 9B B8 80 B8 AA B8 81 78 87 F8 45
- F1 97 12 74 13 24 09 ED 89 E4 C4 D8 C4 3D 89 E3
- 73 02 E7 6C 9A 33 9C E4 9A 54 96 74 63 AE E5 DC
- A2 B9 17 E6 E9 CE CB 9E 77 3C 59 35 59 90 7C 38
- 85 98 12 97 B2 3F E5 83 20 42 50 2F 18 4F E5 A7
- 6E 4D 1D 13 F2 84 9B 85 4F 45 BE A2 8D A2 51 B1
- B7 B8 4A 3C 92 E6 9D 56 95 F6 38 DD 3B 7D 43 FA
- 68 86 4F 46 75 C6 33 09 4F 52 2B 79 91 19 92 B9
- 23 F3 4D 56 44 D6 DE AC CF D9 71 D9 2D 39 94 9C
- 94 9C A3 52 0D 69 96 B4 2B D7 30 B7 28 B7 4F 66
- 2B 2B 93 0D E4 79 E6 6D CA 1B 93 87 CA F7 E4 23
- F9 73 F3 DB 15 6C 85 4C D1 A3 B4 52 AE 50 0E 16
- 4C 2F A8 2B 78 5B 18 5B 78 B8 48 BD 48 5A D4 33
- DF 66 FE EA F9 23 0B 82 16 7C BD 90 B0 50 B8 B0
- B3 D8 B8 78 59 F1 E0 22 BF 45 BB 16 23 8B 53 17
- 77 2E 31 5D 52 BA 64 78 69 F0 D2 7D CB 68 CB B2
- 96 FD 50 E2 58 52 55 F2 6A 79 DC F2 8E 52 83 D2
- A5 A5 43 2B 82 57 34 95 A9 94 C9 CB 6E AE F4 5A
- B9 63 15 61 95 64 55 EF 6A 97 D5 5B 56 7F 2A 17
- 95 5F AC 70 AC A8 AE F8 B0 46 B8 E6 E2 57 4E 5F
- D5 7C F5 79 6D DA DA DE 4A B7 CA ED EB 48 EB A4
- EB 6E AC F7 59 BF AF 4A BD 6A 41 D5 D0 86 F0 0D
- AD 1B F1 8D E5 1B 5F 6D 4A DE 74 A1 7A 6A F5 8E
- CD B4 CD CA CD 03 35 61 35 ED 5B CC B6 AC DB F2
- A1 36 A3 F6 7A 9D 7F 5D CB 56 FD AD AB B7 BE D9
- 26 DA D6 BF DD 77 7B F3 0E 83 1D 15 3B DE EF 94
- EC BC B5 2B 78 57 6B BD 45 7D F5 6E D2 EE 82 DD
- 8F 1A 62 1B BA BF E6 7E DD B8 47 77 4F C5 9E 8F
- 7B A5 7B 07 F6 45 EF EB 6A 74 6F 6C DC AF BF BF
- B2 09 6D 52 36 8D 1E 48 3A 70 E5 9B 80 6F DA 9B
- ED 9A 77 B5 70 5A 2A 0E C2 41 E5 C1 27 DF A6 7C
- 7B E3 50 E8 A1 CE C3 DC C3 CD DF 99 7F B7 F5 08
- EB 48 79 2B D2 3A BF 75 AC 2D A3 6D A0 3D A1 BD
- EF E8 8C A3 9D 1D 5E 1D 47 BE B7 FF 7E EF 31 E3
- 63 75 C7 35 8F 57 9E A0 9D 28 3D F1 F9 E4 82 93
- E3 A7 64 A7 9E 9D 4E 3F 3D D4 99 DC 79 F7 4C FC
- 99 6B 5D 51 5D BD 67 43 CF 9E 3F 17 74 EE 4C B7
- 5F F7 C9 F3 DE E7 8F 5D F0 BC 70 F4 22 F7 62 DB
- 25 B7 4B AD 3D AE 3D 47 7E 70 FD E1 48 AF 5B 6F
- EB 65 F7 CB ED 57 3C AE 74 F4 4D EB 3B D1 EF D3
- 7F FA 6A C0 D5 73 D7 F8 D7 2E 5D 9F 79 BD EF C6
- EC 1B B7 6E 26 DD 1C B8 25 BA F5 F8 76 F6 ED 17
- 77 0A EE 4C DC 5D 7A 8F 78 AF FC BE DA FD EA 07
- FA 0F EA 7F B4 FE B1 65 C0 6D E0 F8 60 C0 60 CF
- C3 59 0F EF 0E 09 87 9E FE 94 FF D3 87 E1 D2 47
- CC 47 D5 23 46 23 8D 8F 9D 1F 1F 1B 0D 1A BD F2
- 64 CE 93 E1 A7 B2 A7 13 CF CA 7E 56 FF 79 EB 73
- AB E7 DF FD E2 FB 4B CF 58 FC D8 F0 0B F9 8B CF
- BF AE 79 A9 F3 72 EF AB A9 AF 3A C7 23 C7 1F BC
- CE 79 3D F1 A6 FC AD CE DB 7D EF B8 EF BA DF C7
- BD 1F 99 28 FC 40 FE 50 F3 D1 FA 63 C7 A7 D0 4F
- F7 3E E7 7C FE FC 2F F7 84 F3 FB 25 D2 9F 33 00
- 00 00 20 63 48 52 4D 00 00 7A 25 00 00 80 83 00
- 00 F9 FF 00 00 80 E9 00 00 75 30 00 00 EA 60 00
- 00 3A 98 00 00 17 6F 92 5F C5 46 00 00 00 1C 49
- 44 41 54 78 DA 62 FC FF FF 3F 03 3E C0 C4 40 00
- 0C 0F 05 00 00 00 00 FF FF 03 00 18 63 03 0D BA
- 2A C3 D1 00 00 00 00 49 45 4E 44 AE 42 60 82
啊这个排版看着好难受,我贴个图吧。
先这些,我的第一篇博客,希望大神们多多指正~