แทรกรูปภาพในรหัส QR QR
ในที่สุดรหัส QR ก็กลายเป็นที่นิยม ตอนนี้แท็กรหัส QR เกี่ยวกับโฆษณาของผลิตภัณฑ์ขนาดใหญ่และขนาดเล็กบนถนนและตรอกซอกซอยมีอยู่ทุกหนทุกแห่งและส่วนใหญ่ไม่ใช่รหัส QR บริสุทธิ์ที่เรียบง่าย แต่รหัส QR ที่มีไอคอนบุคลิกภาพอยู่ตรงกลาง
ฉันเคยทำโปรแกรมที่ใช้โครงการโอเพ่นซอร์สของ Google ZXING เพื่อใช้รหัส QR และการเข้ารหัสและถอดรหัสรหัส 1R และเปิดซอร์สโค้ด (การเข้ารหัสบาร์โค้ดและรหัส QR และถอดรหัสด้วย C#) วันนี้ฉันยังคงเพิ่มรูปภาพขนาดเล็กที่อยู่ตรงกลางของรหัส QR ตามโปรแกรมนี้
ความรู้พื้นฐาน
QRCode ใช้รหัส Reed-Solomon เพื่อแก้ไขข้อบกพร่อง สำหรับเราแล้วการเข้ารหัสของ Reed Solomon มีสองลักษณะที่สำคัญมาก ก่อนอื่นมันเป็นรหัสระบบที่ชัดเจนซึ่งหมายความว่าคุณสามารถเห็นข้อมูลดั้งเดิมโดยตรงในการเข้ารหัสสุดท้าย มันเหมือนกับเมื่อเราเข้ารหัส“ Hello World” ในที่สุดเราก็เห็น“ Hello World” และรหัสที่ทนต่อความผิดพลาดไม่กี่รายการที่ตามมา ประการที่สองการเข้ารหัส Reed Solomon สามารถ "exorbited" หลังจากคำนวณผลลัพธ์ของการเข้ารหัส Reed Solomon ที่แตกต่างกันสองรายการจะได้รับรหัส Reed Solomon ใหม่และรหัสต้นฉบับของรหัสใหม่นี้เป็นเอกสิทธิ์หรือของสองรหัสต้นฉบับดั้งเดิม หากคุณต้องการทราบว่าทำไมคุณสมบัติทั้งสองนี้ใช้งานได้ให้ดูการคำนวณทางคณิตศาสตร์ Finite Field และการเข้ารหัส Reed-Solomon
qrcode
ภาพ qrcode กำหนดตัวบ่งชี้ที่ไม่ซ้ำกันบางอย่างเพื่อช่วยให้ผู้คนหรือคอมพิวเตอร์ระบุตัวเองว่าเป็น qrcode descriptor ชนิดนี้แตกต่างกันเล็กน้อยตามขนาดของ qRCode - ยิ่งภาพ QRCode มีขนาดใหญ่ขึ้น อย่างไรก็ตามสำหรับการรับรู้ของมนุษย์คุณลักษณะที่ชัดเจนที่สุดคือสัญลักษณ์ของมุมทั้งสี่ของภาพได้รับการแก้ไข เมื่อเห็นสี่มุมดังกล่าวมนุษย์ตอบสนองโดยสัญชาตญาณ: นี่คือ qrcode
(อันที่จริงเราสามารถตัดสินระดับความซ้ำซ้อนของการเข้ารหัสโดยการอ่านสองจุดพิกเซลที่มุมซ้ายบนของภาพการกำหนดสีดำคือ 0 และสีขาวคือ 1 จากนั้นถ้าคุณเห็น 00 มันเป็นความซ้ำซ้อนระดับ L ระดับ L คือ M, 10 คือ Q และ 11
ด้วยการทำงานข้างต้นเราสามารถทราบตำแหน่งของข้อมูลรหัสต้นฉบับในภาพได้อย่างง่ายดาย จากนั้นโดยการเปลี่ยนข้อมูลรหัสดั้งเดิมของคุณคุณสามารถเปลี่ยนพิกเซลในภาพเพื่อให้คุณสามารถวาดรูปภาพภายใน ที่ถูกกล่าวว่าสถานการณ์บางอย่างต่อไปนี้สามารถทำให้สิ่งที่น่าสนใจยิ่งขึ้น
ฉันสร้างรหัส QR เพื่อแทรกรูปภาพ:
ก่อนหน้านี้ฉันให้ตัวแปลงสัญญาณการเข้ารหัสรหัส 1QR ฟรีที่คุณให้คุณโดยใช้โครงการ ZXING Open Source แต่ไม่สามารถแทรกรูปภาพได้ หลังจากความพยายามในเวลานี้รูปภาพถูกแทรกลงในรหัส QR สำเร็จและสามารถเข้ารหัสและถอดรหัสได้ กุญแจสำคัญในการแทรกรูปภาพอยู่ในการปรับค่าสัมประสิทธิ์การทนต่อความผิดของรหัส QR ซึ่งอธิบายไว้ในรายละเอียดในซอร์สโค้ด
อินเทอร์เฟซ:
หากต้องการแทรกรูปภาพลงในรหัส QR และถอดรหัสตามปกติให้ใส่ใจกับสองจุดต่อไปนี้:
1. ค่าสัมประสิทธิ์ความผิดพลาดของการตั้งค่ารหัส QR ควรสูง
ในโครงการ ZXING สามารถตั้งค่าสัมประสิทธิ์ความผิดพลาดได้เมื่อสร้างรหัส QR:
ตั้งค่า encodehinttype.error_correction เป็น errorcorrectionlevel.h
// สร้าง QR Code Writer MultiformatWriter MutiWriter = ใหม่ com.google.zxing.multiformatwriter (); Hashtable Hint = new hashtable (); Hint.add (ENCODEHINTTYPE.CHARACTION_SET, "UTF-8"); Hint.add (encodehinttype.error_correction, com.google.zxing.qrcode.decoder.errorcorrectionLevel.h); // สร้างรหัส QR bytematrix bm = mutiwriter.encode (txtmsg.text, com.google.zxing.barcodeformat.qr_code, 300, 300, คำใบ้); Bitmap img = bm.tobitmap ();
2. ขนาดและตำแหน่งของภาพที่แทรกอยู่ตรงกลางควรเหมาะสม
หากภาพกลางมีขนาดใหญ่เกินไปและครอบคลุมพื้นที่ส่วนใหญ่ของรหัส QR มันจะไม่ทำงานอย่างแน่นอน ถ้ามันเล็กเกินไปมันจะไม่มีผลกระทบส่วนบุคคล
แล้วขนาดใหญ่แค่ไหน? ตามลักษณะของรหัส QR ที่อธิบายไว้ในบทความก่อนหน้านี้มุมทั้งสามที่มีสี่เหลี่ยมเป็นพื้นที่ข้อมูลซึ่งไม่สามารถครอบคลุมได้ เฉพาะพื้นที่ที่อยู่ตรงกลางและมุมขวาล่างเท่านั้นที่สามารถครอบคลุมได้ แต่ไม่ควรมีขนาดใหญ่เกินไป
หลังจากการทดสอบมันมีความเหมาะสมมากกว่าที่จะมีขนาดภาพเล็ก ๆ ในบัญชีกลางสำหรับ 2/7 ของความกว้างทั้งหมดของรหัส QR ซึ่งไม่เพียง แต่ตอบสนองความชัดเจนของภาพ แต่ยังไม่ส่งผลกระทบต่อข้อมูลที่เข้ารหัสของรหัส QR
ภาพขนาดเล็กอยู่ตรงกลางและรูปร่างอาจผิดปกติ
ขอบคุณสำหรับการอ่านฉันหวังว่ามันจะช่วยคุณได้ ขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!