머리말
기본 인코딩은 기존 요구 사항을 처리하는 데 사용되는 표준 Base64 인코딩입니다. 출력 내용은 라인 브레이크를 추가하지 않으며 출력 내용은 문자와 숫자로 구성됩니다.
최근에 웹 템플릿을 만들었고 Base64 배경 이미지를 사용하고 싶습니다. 네트워크에 기성품 인코더가 있지만 항상 직접 구현하고 싶습니다. 많은 사람들이 JDK 8의 새로 제공된 Base64 클래스 가이 작업을 매우 편리하게 처리 할 수 있음을 알지 못할 수도 있습니다. Base64 (Java Platform SE 8).
1. 먼저 사진을 선택하십시오
mm.png
2. HTML 데모 파일 템플릿을 만듭니다
test.html
<! docType html> <html> <head lang = "zh-cn"> <meta charset = "utf-8"> <meta http-equiv = "x-ua compatible"content = "ee = edge"> <meta name = "viewport"content = "width = device-width"> <test base 64 encodod-2gua </style> type = "text/css"> #thisimage {margin : 20px auto; -webkit-border-radius : 50%; 국경-라디우스 : 50%; 배경 : URL () 비 반복 센터 센터; 배경 크기 : 포함; 국경 : 8px solid #ededed; 너비 : 128px; 높이 : 128px; } </style> </head> <hod> <div id = "thisimage"> </div> </body> </html> url() 이 비어 있고 생성 된 base64 인코딩 된 문자열을 나중에 이식합니다.
3. Java 프로그램을 작성하십시오
여기서, Base64 인코딩 및 디코딩의 양방향 구현이 구현되지만,이 예에서는 Base64 디코딩 만 필요합니다. Java 프로그램의 의견은 매우 명확합니다. 코드를 클릭하십시오.
`base64trans.java 'package com.gua;/*** 2014/10/5에 2GUA에 의해 생성되었습니다. * /import java.io.ioexception; import java.nio.file.*; import java.util.base64; import static java.lang.system.out; public class base64trans { /***이미지 파일에서 컨텐츠를 읽습니다. * @param 경로 이미지 파일의 경로. * @Binal Image 컨텐츠의 @return 바이트 배열. * */ private byte [] readfile (path path) {byte [] imageContents = null; try {imageContents = files.readallBytes (path); } catch (ioException e) {out.println ( "오류 읽기 파일 ... ~ zz"); } 반환 imageContents; } /*** 이미지 파일 인코딩 인코딩 컨텐츠 출력은 {@Code String} 형식입니다. * @param imagecontents 바이 테이드 배열 바이너리 이미지 컨텐츠. * @return {@Code String} 형식 인코딩 된 콘텐츠. */ private String base64Encoding (byte [] imageContents) {if (imageContents! = null) return base64.getEncoder (). encodetostring (imageContents); 그렇지 않으면 널을 반환합니다. } /*** 이미지 파일을 디코딩합니다. * @param imageContents 디코딩 할 이미지 파일의 문자열 형식. * 디코딩 된 이미지 파일의 @return 이진 내용. */ private byte [] base64decoding (String imageContents) {if (imageContents! = null) return base64.getDecoder (). decode (imageContents); 그렇지 않으면 널을 반환합니다. } /*** 디코딩 된 이진 컨텐츠를 파일에 쓰십시오. * @Param Path에 쓰여진 길. * @param imageContents 디코딩 된 이진 함량. */ private void writefile (Path Path, Byte [] imageContents) {if (imageContents! = null) try {files.write (경로, imageContents, StandardEpenoption.create); } catch (ioexception e) {out.println ( "파일 쓰기 오류 ... ~ zz"); }} public static void main (String [] args) {base64trans bt = new Base64trans (); 문자열 encodingstring = bt.base64encoding (bt.readfile (paths.get ( "d : /temp/mm.png")); out.println ( "이진 그림 파일 Base64 코드 :" + encodingstring); bt.writefile (paths.get ( "d : /temp/mm2.png"), bt.base64decoding (encodingstring)); out.println ( "작업 종료 ..."); }}프로그램 결과는 다음과 같습니다.
바이너리 그림 파일 Base64 코드 : IVborw0kggoaaansuheugaaaiaaaaaacayaaaddpmhlaaaaaaabgdbtueaalgpc/xhbqaaacb ... (n multi-character는 여기에 생략되었습니다). 8xntiwl2vhc3lpy29ulmnul2vhc3lpy29ulmnul2nkbi1pbwcuzwfzewljb24uy24vcg5nlzewodcwlzewodcwodyucg5nplffdwaaaabjru5erkjggg == Task End ...
4. 최종 설정
HTML 파일 템플릿 테스트에서 Base64에 인코딩 된 컨텐츠를 참조하려면 또 다른 단계가 있습니다. Base64에 인코딩 된 컨텐츠에 다음 내용을 추가하십시오 : data:image/png;base64,
최종 결과는 다음과 유사합니다.
데이터 : 이미지/png; base64, ivborw0kggoaaaansuheugaaaiaaaaaacayaaaddpmhlaaaaaaabgdbtueaalgpc/xhbqaaacb ... 8xntiwl2vhc3lpy29ulmnul2vhc3lpy29ulmnul2nkbi1pbwcuzwfzewljb24uy24vcg5nlzewodcwlzewodcwodyucg5nplffdwaaaabjru5erkjggg ==
그런 다음이 긴 문자열을 다음 줄의 url() 브래킷에 이식하십시오.
배경 : URL () 비 반복 센터 센터;
이미지가 JPG 형식이면 data:image/png;base64 위로 JPEG로 PNG를 변경하고 GIF 형식 인 경우 gif로 변경하십시오. 좋아, 페이지를 새로 고치고 결과를보십시오.
CSS3 효과를 설정하기 때문에 원이 있습니다.
또한 Base64 디코딩을 구현하고 새로운 MM2.png 이미지를 생성했습니다. 이미지 브라우저에서 mm2.png를 열면 그 효과는 mm.png와 정확히 동일해야합니다.
실제로 새로운 JDK 버전이 출시 될 때마다 발견에 관심이 있는지 여부에 관계없이 모든 크기에 대한 많은 업데이트가 있습니다. Java는 항상 매우 강력하고 안심입니다.
요약
위는이 기사의 전체 내용입니다. 이 기사의 내용이 귀하의 연구 나 업무에 도움이되기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다.