序文
基本エンコーディングは、従来の要件を扱うために使用される標準のBase64エンコーディングです。出力コンテンツはラインブレークを追加せず、出力コンテンツは文字と数字で構成されています。
最近、Webテンプレートを作成しました。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 = "ie = edge"> <meta name = "viewport" content = "width =" base64 encodin type = "text/css"> #thisimage {margin:20px auto; -webkit-border-radius:50%;ボーダーラジウス:50%;背景:url()繰り返しセンターセンター。バックグラウンドサイズ:contains;ボーダー:8px solid #ededed;幅:128px;高さ:128px; } </style> </head> <body> <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パス画像ファイルへのパス。 * @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);それ以外の場合はnullを返します。 } /***画像ファイルをデコードします。 * @param imageContents画像ファイルの文字列形式はデコードされます。 * @returnデコードされた画像ファイルのバイナリコンテンツ。 */ private byte [] base64Decoding(String ImageContents){if(imageContents!= null)return base64.getDecoder()。decode(imageContents);それ以外の場合はnullを返します。 } /***デコードされたバイナリコンテンツをファイルに書き込みます。 * @paramパスに書かれたパス。 * @Param ImageContentsデコードされたバイナリコンテンツ。 */ private void writeFile(PATH PATH、byte [] imageContents){if(imageContents!= null)try {files.write(path、imageContents、StandardOpenoption.create); } catch(ioException e){out.println( "write file error ... 〜zz"); }} public static void main(string [] args){base64trans bt = new base64trans(); string encodingString = bt.base64encoding(bt.readfile(faths.get( "d:/temp/mm.png"))); out.println( "バイナリ画像ファイルBase64コード:" + encodingString); bt.writefile(paths.get( "d:/temp/mm2.png")、bt.base64decoding(encodingstring)); out.println( "タスクエンド..."); }}プログラムの結果は次のとおりです。
バイナリ画像ファイルBase64コード:ivborw0kggoaaanaansuheugaaaaaaaaaddpmhlaaaabgdbtueaalgpc/xhbqaaacb ...(n Multi-Characterはここでは省略) 8xNTIwL2Vhc3lpY29uLmNuL2Vhc3lpY29uLmNuL2Nkbi1pbWcuZWFzeWljb24uY24vcG5nLzEwODcwLzEwODcwODYucG5nPLffdwAAAABJRU5ErkJggg==Task end...
4。最終設定
HTMLファイルテンプレートtest.htmlでbase64エンコードコンテンツを参照するには、別のステップがあります。Base64エンコードされたコンテンツの先頭に次のコンテンツを追加します: data:image/png;base64,
最終結果はこれに似ています。
データ:Image/PNG; Base64、Ivborw0kggoaaaanasuheugaaaaaaaaaaddpmhlaaaaaabgdbtueaalgpc/xhbqaaacb ...(nマルチカクターはここで省略されています) 8XNTIWL2VHC3LPY29ULMNUL2VHC3LPY29ULMNUL2NKBI1PBWCUZWFZEWLJB24UY24VCG5NLZEWODCWLZEWODCWODYUCG5NPLFFFDWAAAAABJRU5ERKJGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGg
その後、この長い文字列を次のコード行のurl()ブラケットに埋め込みます。
背景:url()繰り返しセンターセンター。
画像がJPG形式の場合は、 data:image/png;base64 JPEGに変更し、GIF形式の場合はGIFに変更してください。 OK、ページを更新して結果を見てください:
CSS3効果を設定するため、円があります。
また、base64デコードを実装し、新しいmm2.png画像を生成しました。画像ブラウザでmm2.pngを開くと、効果はmm.pngとまったく同じである必要があります。
実際、新しいJDKバージョンがリリースされるたびに、あらゆるサイズの多くの更新があります。それを発見することに興味があるかどうかです。 Javaは常にとても堅牢で安心しています。
要約します
上記は、この記事のコンテンツ全体です。この記事の内容があなたの研究や仕事に役立つことを願っています。ご質問がある場合は、メッセージを残してコミュニケーションをとることができます。