Предисловие
Основное кодирование - это стандартное кодирование Base64, используемое для решения обычных требований: выходной контент не добавляет линии, а выходной контент состоит из букв и чисел.
Я недавно сделал веб -шаблон, и я хочу использовать фоновое изображение Base64. Хотя в сети есть готовые энкодеры, я всегда хочу реализовать один сам. Многие люди могут не знать, что недавно предоставленный класс Base64 в JDK 8 может очень удобно выполнять эту задачу: 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-complaintable" content = "ie = edge"> <meta name = "viewport" content = "width = device-width"> <Tilation> test Base64 EncoDing encoDing encoding 2gu. type = "text/css"> #thisimage {margin: 20px Auto; -Вебкит-грамотный радий: 50%; граница радий: 50%; Фон: url () Центр без повторного употребления; Фоно-размер: содержит; Граница: 8px Solid #eded; Ширина: 128px; Высота: 128px; } </style> </head> <body> <div id = "thisImage"> </div> </body> </html> Обратите внимание, что url() пуст, и мы будем имплантировать сгенерированную кодированную строку Base64 в нее позже.
3. Напишите программы Java
Здесь будет реализована двусторонняя реализация кодирования и декодирования BASE64, хотя в этом примере требуется только декодирование BASE64. Комментарии программ Java очень ясны, просто нажмите на код:
`Base64trans.java`package com.gua;/*** Создан 2gua на 2014/10/50. * /import java.io.ioexception; import java.nio.file.*; import java.util.base64; импорт static java.lang.system.out; открытый класс Base64trans { /***Читать контент из файла изображения. * @param path Путь к файлу изображения. * @return Byte массив содержимого двоичного изображения. * */ private byte [] readfile (path Path) {byte [] ImageContents = null; try {imageContents = files.readallbytes (path); } catch (ioException e) {out.println ("Файл чтения ошибок ... ~ ZZ"); } вернуть ImageContents; } /*** Кодировать файлы изображений, вывод содержимого кодирования в формате {@code string}. * @param ImageContents Byte Array содержимого двоичного изображения. * @return {@Code String} Формат кодированный контент. */ private String base64encoding (byte [] ImageContents) {if (ImageContents! = null) return base64.getencoder (). incodeToString (ImageContents); иначе вернуть ноль; } /*** Декодировать файл изображения. * @param ImageContents Format файла изображения для декодирования. * @return двоичное содержание декодированного файла изображения. */ private byte [] base64decoding (String ImageContents) {if (ImageContents! = null) return base64.getDecoder (). decode (ImageContents); иначе вернуть ноль; } /*** Запишите декодированный двоичный контент в файл. * @param path Путь написан. * @param ImageContents Декодированный бинарный контент. */ private void writefile (путь пути, byte [] ImageContents) {if (ImageContents! = null) попробуйте {files.write (path, imageContents, standardopenoption.create); } catch (ioException e) {out.println ("ошибка записи файла ... ~ zz"); }} public static void main (string [] args) {base64trans bt = new Base64trans (); String encodingString = bt.base64encoding (bt.readfile (paths.get ("d: /temp/mm.png"))); out.println ("Двоичный файл картинки Base64 Code:" + EncodingString); bt.writefile (paths.get ("d: /temp/mm2.png"), bt.base64decoding (encodingstring)); out.println ("Конец задачи ..."); }}Результаты программы следующие:
Двоичный файл картинки База64 Код: ivborw0kggoaaaaansuheugaaaaiaaaacacayaaaddpmhlaaaaaaabgdbtueaalgpc/xhbqaaacb ... (n multi-character здесь опущен) 8xntiwl2vhc3lpy29ulmnul2vhc3lpy29ulmnul2nkbi1pbwcuzwfzewljb24uy24vcg5nlzewodcwlzewodcwodyucg5nplffdwaaaabjru5erkjggg = asd eD ...
4. Окончательная настройка
Для ссылки на базовый 64-кодированный контент в Test Test Test.html HTML data:image/png;base64, файла.
Окончательный результат похож на это:
Данные: Image/png; Base64, ivborw0kggoaaaaansuheugaaaiaaaacacayaaaddpmhlaaaaaabgdbtueaAlgpc/xhbqaaacb ... (n многозадачный здесь опущен) 8xntiwl2vhc3lpy29ulmul2vhc3lpy29ulmnul2nkbi1pbwcuzwfzewljb24uy24vcg5nlzewodcwlzewodcwodyucg5nplffdwaaaabjru5erkjggg ==
После этого имплантайте эту длинную строку в кронштейны url() следующей строки кода:
Фон: url () Центр без повторного употребления;
Если изображение находится в формате JPG, измените PNG в data:image/png;base64 выше на JPEG, и если это формат GIF, измените его на GIF. Хорошо, обновите страницу и посмотрите результаты:
Есть круги, потому что мы устанавливаем некоторые эффекты CSS3.
Мы также реализовали декодирование Base64 и сгенерировали новое изображение MM2.png. Откройте MM2.png в браузере изображений, и эффект должен быть точно таким же, как mm.png.
На самом деле, каждый раз, когда выпускается новая версия JDK, существует много обновлений всех размеров, просто независимо от того, заинтересованы ли вы в ее открытии. Java всегда такая устойчивая и обнадеживающая.
Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи поможет вашему обучению или работе. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения.