مقدمة
الترميز الأساسي هو ترميز أساسي 64 ، يستخدم للتعامل مع المتطلبات التقليدية: لا يضيف محتوى الإخراج فترات أسطر ، ويتألف محتوى الإخراج من الحروف والأرقام.
لقد صنعت مؤخرًا قالب ويب ، وأريد استخدام صورة خلفية BASE64. على الرغم من وجود ترميزات جاهزة على الشبكة ، إلا أنني أريد دائمًا تنفيذ واحدة بنفسي. قد لا يعلم الكثير من الناس أن فئة BASE64 المقدمة حديثًا في JDK 8 يمكنها التعامل مع هذه المهمة بشكل مريح للغاية: BASE64 (Java Platform SE 8).
1. اختر صورة أولا
MM.PNG
2. قم بإنشاء قالب ملف DEMO HTML
test.html
<! doctype html> <html> <head lang = "zh-cn"> <meta charset = "utf-8" type = "text/css"> #thisimage {margin: 20px auto ؛ -بكيت براديوس: 50 ٪ ؛ الحدود الحدودية: 50 ٪ ؛ الخلفية: URL () مركز مركز عدم التكرار ؛ حجم الخلفية: يحتوي ؛ الحدود: 8px صلبة #eded ؛ العرض: 128 بكسل ؛ الارتفاع: 128 بكسل ؛ } </style> </head> <body> <div id = "lesimage"> </viv> </body> </html> لاحظ أن url() فارغ ، وسنقوم بزرع السلسلة المشفرة BASE64 التي تم إنشاؤها فيها لاحقًا.
3. اكتب برامج Java
هنا ، سيتم تنفيذ تطبيق ثنائي الاتجاه لترميز BASE64 وفك التشفير ، على الرغم من أن فك تشفير BASE64 فقط مطلوب في هذا المثال. تعليقات برامج Java واضحة للغاية ، فقط انقر فوق الكود:
`base64trans.java`package com.gua ؛/*** تم إنشاؤه بواسطة 2gua في 2014/10/5. * /import java.io.ioException ؛ استيراد java.nio.file.*؛ استيراد java.util.base64 ؛ استيراد java.lang.system * param مسار المسار إلى ملف الصورة. * @إعادة صفيف بايت من محتوى الصورة الثنائية. * */ private byte [] ReadFile (path path) {byte [] ImageContents = null ؛ حاول {imageContents = files.readallbytes (path) ؛ } catch (ioException e) {out.println ("ملف قراءة الخطأ ... ~ ZZ") ؛ } إرجاع الصور ؛ } /*** تشفير ملفات الصور ، يكون إخراج محتوى الترميز بتنسيق {code string}. * param imageContents بايت مجموعة من محتوى الصورة الثنائية. * regurn {code string} محتوى مشفر. */ private string base64encoding (byte [] ImageContents) {if (ImageContents! = null) return base64.getencoder (). encodetoString (ImageContents) ؛ عودة أخرى فارغة. } /*** فك تشفير ملف الصورة. * Param ImageContents تنسيق سلسلة الصورة المراد فك تشفيرها. * RETURN المحتوى الثنائي لملف الصورة فك التشفير. */ private byte [] base64Decoding (سلسلة imageContents) {if (imageContents! = null) return base64.getDecoder (). decode (ImageContents) ؛ عودة أخرى فارغة. } /*** اكتب المحتوى الثنائي الذي تم فك تشفيره في الملف. * param مسار المسار المكتوبة إلى. * param imageContents المحتوى الثنائي فك التشفير. */ private void writefile (path path ، 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 () ؛ سلسلة 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 رمز: Ivborw0kggoaaaanaNaGaaaaiaaaAcayaaAdpmhlaaaaabgdbtueaalgpc/xhbqaaacb ... (n multi-character هنا) 8xntiwl2vhc3lpy29ulmnul2vhc3lpy29ulmnul2nkbi1pbwcuzwfzewljb24uy24vcg5nlzewodcwlzewodcwodyucggg5nplffdwaaaabjru5
4. الإعداد النهائي
للإشارة إلى BASE64 المحتوى المشفر في TEST TEST.HTML ، هناك خطوة أخرى ، هناك خطوة أخرى: إضافة المحتوى التالي إلى بداية المحتوى المعدل BASE64: data:image/png;base64,
النتيجة النهائية تشبه هذا:
البيانات: Image/png ؛ base64 ، ivborw0kggoaaaanaugaaaaiaaaacayaaaadpmhlaaaaabgdbtueaalgpc/xhbqaaacb ... (n multi-arcer rechered هنا) 8xntiwl2vhc3lpy29ulmnul2vhc3lpy29ulmnul2nkbi1pbwcuzwfzewljb24uy24vcg5nlzewodcwlzewodcwodyucggg5nplffdwaaaaaabjru5
بعد ذلك ، قم بزرع هذه السلسلة الطويلة في أقواس url() من السطر التالي من التعليمات البرمجية:
الخلفية: URL () مركز مركز عدم التكرار ؛
إذا كانت الصورة بتنسيق JPG ، فيرجى تغيير PNG في data:image/png;base64 أعلاه إلى JPEG ، وإذا كان تنسيق GIF ، قم بتغييره إلى GIF. حسنًا ، قم بتحديث الصفحة وشاهد النتائج:
هناك دوائر لأننا وضعنا بعض تأثيرات CSS3.
قمنا أيضًا بتنفيذ فك تشفير BASE64 وإنشاء صورة MM2.PNG جديدة. افتح mm2.png في متصفح الصور ، ويجب أن يكون التأثير هو نفسه تمامًا مثل mm.png.
في الواقع ، في كل مرة يتم فيها إصدار إصدار JDK الجديد ، هناك العديد من التحديثات لجميع الأحجام ، فقط ما إذا كنت مهتمًا باكتشاف ذلك. جافا دائما قوية جدا ومطمئنة.
لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون محتوى هذه المقالة من بعض المساعدة لدراستك أو عملك. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل.