Vorwort
Basic -Codierung ist eine Standard -Basis64 -Codierung, die zur Bewältigung herkömmlicher Anforderungen verwendet wird: Der Ausgangsinhalt fügt keine Zeilenumbrüche hinzu, und der Ausgabeinhalt besteht aus Buchstaben und Zahlen.
Ich habe kürzlich eine Webvorlage erstellt und möchte Base64 -Hintergrundbild verwenden. Obwohl es im Netzwerk vorbereitete Encoder gibt, möchte ich immer eine alleine implementieren. Viele Menschen wissen möglicherweise nicht, dass die neu bereitgestellte Base64 -Klasse in JDK 8 diese Aufgabe sehr bequem übernehmen kann: Base64 (Java -Plattform SE 8).
1. Wählen Sie zuerst ein Bild aus
mm.png
2. Erstellen Sie die HTML -Demo -Dateivorlage
test.html
<!DOCTYPE html><html><head lang="zh-CN"> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width"> <title>Test Base64 encoding- 2gua</title> <style type = "text/css"> #disimage {margin: 20px auto; -Webkit-Border-Radius: 50%; Grenzradius: 50%; Hintergrund: URL () No-Repeat Center Center; Hintergrundgröße: Enthält; Grenze: 8px solide #Eded; Breite: 128px; Höhe: 128px; } </style> </head> <body> <div id = "thisimage"> </div> </body> </html> Beachten Sie, dass url() leer ist und wir die generierte Base64 -codierte Zeichenfolge später implantieren.
3. Schreiben Sie Java -Programme
Hier wird eine Zwei-Wege-Implementierung von Basis64-Codierung und -decodierung implementiert, obwohl in diesem Beispiel nur Base64-Dekodierung erforderlich ist. Die Kommentare von Java -Programmen sind sehr klar. Klicken Sie einfach auf den Code:
`Base64Trans.java`package com.gua;/*** Erstellt von 2gua am 2014/10/5. * /Import Java.io.ioException; Import Java.nio.file. * @param Pfad den Pfad zur Bilddatei. * @return Byte -Array von Binärbildinhalten. * */ private byte [] ReadFile (Pfadweg) {byte [] ImagesContents = null; try {imageContents = files.readallBytes (Pfad); } catch (ioException e) {out.println ("Fehlerlesendatei ... ~ zz"); } return imagecontents; } /*** codieren Bilddateien, die Ausgabe des Codierungsinhalts erfolgt im Format {@code String}. * @Param ImageContents Byte -Array von Binärbildinhalten. * @return {@Code String} Format codierter Inhalt. */ private String base64Coding (byte [] ImagesContents) {if (imageContents! sonst kehre null zurück; } /*** Dekodieren Sie die Bilddatei. * @Param ImagesContents String -Format der zu dekodierenden Bilddatei. * @return binärer Inhalt der dekodierten Bilddatei. */ private byte [] Base64Decoding (String imagebontents) {if (imageContents! sonst kehre null zurück; } /*** Schreiben Sie den dekodierten binären Inhalt in die Datei. * @Param Pfad den Weg geschrieben. * @Param Imagescontents den dekodierten binären Inhalt. */ private void writefile (Pfad Pfad, Byte [] ImagesContents) {if (imageContentents! } catch (ioException e) {out.println ("Dateifehler ... ~ Zz"); }} public static void main (String [] args) {Base64Trans bt = new Base64Trans (); String codingString = bt.base64Coding (Bt.ReadFile (paths.get ("d: /temp/mm.png"))); out.println ("binäre Bilddatei Basis64 Code:" + codingstring); bt.writeFile (paths.get ("d: /temp/mm2.png"), bt.base64Decoding (codingstring)); out.println ("Taskend ..."); }}Die Programmergebnisse sind wie folgt:
Binärbilddatei Basis64 Code: IVBORW0KGGOAAAANSUHUGAAAIAAAAACACAAAAADDPMHLAAAAAABGDBELEAALGPC/XHBQAAACB ... (N Multi-Charakter hier weggelassen) 8xNTIwL2Vhc3lpY29uLmNuL2Vhc3lpY29uLmNuL2Nkbi1pbWcuZWFzeWljb24uY24vcG5nLzEwODcwLzEwODcwODYucG5nPLffdwAAAABJRU5ErkJggg==Task end...
V. Letzte Einstellung
Um Basis64-kodierter Inhalt im HTML data:image/png;base64, Dateivorlage test.html zu referenzieren.
Das Endergebnis ähnelt Folgendes:
Daten: Image/Png; Base64, IVBORW0KGGOAAAANSUHUGAAAIAIAAAAACAYAAADDPMHLAAAAABGDBTUEAALGPC/XHBQAAACB ... (N Multi-Charakter hier weggelassen) 8xNTIwL2Vhc3lpY29uLmNuL2Vhc3lpY29uLmNuL2Nkbi1pbWcuZWFzeWljb24uY24vcG5nLzEwODcwLzEwODcwODYucG5nPLffdwAAAABJRU5ErkJggg==
Implantiert diese lange Zeichenfolge anschließend in url() -Krackets der folgenden Codezeile:
Hintergrund: URL () No-Repeat Center Center;
Wenn sich das Bild im JPG -Format befindet, ändern Sie bitte die PNG in data:image/png;base64 oben in JPEG und wenn es sich um GIF -Format handelt, ändern Sie es in GIF. OK, aktualisieren Sie die Seite und sehen Sie die Ergebnisse an:
Es gibt Kreise, weil wir einige CSS3 -Effekte festlegen.
Wir haben auch Base64 -Dekodierung implementiert und ein neues MM2.Png -Bild generiert. Öffnen Sie MM2.png im Bildbrowser, und der Effekt sollte genau mit Mm.png übereinstimmen.
In der Tat gibt es jedes Mal, wenn die neue JDK -Version veröffentlicht wird, viele Updates aller Größen, nur ob Sie daran interessiert sind, sie zu entdecken. Java ist immer so robust und beruhigend.
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, der Inhalt dieses Artikels wird Ihnen bei Ihrem Studium oder Ihrer Arbeit helfen. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen.