ছাপার জন্য QR কোড: ভুল সংশোধনের মাত্রা, মাপ, রং আর লিংকের দৈর্ঘ্য

ছাপার জন্য QR কোডের মাত্রা ও রং নিয়ে কাল্পনিক উদাহরণ, পাশে ৩৩ × ৩৩ ঘরের একটি কোড

ধরুন একটি কাল্পনিক পাড়ার ক্লাব ঈদ মেলার ব্যানারে QR কোড বসিয়েছে। কম্পিউটারের পর্দায় কোডটা দারুণ চলছিল। ব্যানার ছাপা হয়ে এল, আর মেলার দিন দেখা গেল অর্ধেক ফোন কোডটা পড়তেই পারছে না। এমন ঘটনা বাস্তবে শোনা যায়। কারণ হিসেবে সাধারণত যা আসে: লিংক বেশি লম্বা, কোড বেশি ছোট, রং ফিকে, বা পাশের সাদা ফাঁকা জায়গা কাটা পড়েছে। QR কোড জেনারেটর টুলে মাত্রা, মাপ আর রং নিজের হাতে ঠিক করা যায়, বাকিটা শুধু জানা থাকলেই হয়।

কোড কীভাবে বানাবেন, তার মোটা নিয়ম আছে আগের লেখায়। এখানে ছাপার জন্য দরকারি চারটি জিনিস দেখব: লিংকের দৈর্ঘ্য, ভুল সংশোধনের মাত্রা, মাপ আর রং। উদাহরণের সংখ্যাগুলো আমি টুলের নিজের QR লাইব্রেরি চালিয়ে বের করেছি, অনুমানে বসাইনি।

লিংক ছোট হলে কোড সরল হয়

ছোট লিংকের ২৫ × ২৫ ঘরের কোড আর লম্বা ট্র্যাকিং লিংকের ৪৫ × ৪৫ ঘরের কোডের পাশাপাশি তুলনা
একই মাত্রায় (M) লিংক লম্বা হলে ঘর বাড়ে।

QR কোড আসলে একটি বর্গাকার ঘরের জাল। লেখা যত বড়, জালে ঘর তত বেশি। একই মাত্রায় (M) হিসাব করে দেখুন:

  • https://sellshop.com.bd, ২৩ অক্ষরের লিংক: ২৫ × ২৫ ঘর।
  • https://sellshop.com.bd/tools/qr-code-generator/, ৪৮ অক্ষর: ৩৩ × ৩৩ ঘর।
  • ট্র্যাকিং চিহ্ন লাগানো ১১৪ অক্ষরের একটি কাল্পনিক লিংক (example.com-এর): ৪৫ × ৪৫ ঘর।

এখন ধরুন তিনটিই ব্যানারে একই চওড়ায় ছাপলেন। টুল কোডের চারপাশে চার ঘর করে ফাঁকা রাখে, তাই ঘরের মোট সংখ্যা ধরতে হবে ২৫ + ৮ = ৩৩ আর ৪৫ + ৮ = ৫৩। একই চওড়ার ভেতর ৫৩টি ঘর ঢোকাতে গেলে প্রতিটি ঘর ২৫ ঘরের কোডের ঘরের তুলনায় মাত্র প্রায় ৬২ শতাংশ চওড়া হয় (৩৩ ÷ ৫৩)। ঘর যত সরু, ফোনের ক্যামেরার জন্য তত কঠিন, বিশেষ করে একটু দূর থেকে বা কম আলোয়।

তাই ছাপার কোডে সবচেয়ে বড় উপকার হয় লিংক ছোট রাখলে। বিজ্ঞাপনের ট্র্যাকিং অংশ (যেমন utm_source=…) কোডের লিংকে না ঢুকিয়ে, নিজের সাইটে একটি ছোট ঠিকানা বানিয়ে সেটাকে লম্বা ঠিকানায় পাঠিয়ে দেওয়া যায়। এটা ওয়েবসাইট চালানোর সাধারণ কৌশল, টুলের নিজস্ব সুবিধা নয়। তবে কোডে সেই ছোট ঠিকানাটাই বসবে, আর কোড ছোট ও সরল থাকবে।

ভুল সংশোধনের মাত্রা: কখন কোনটা

একই লিংকের L, M, Q ও H মাত্রার চারটি কোড, ঘর যথাক্রমে ২৯, ৩৩, ৩৭ ও ৪১
মাত্রা বাড়লে সুরক্ষা বাড়ে, ঘরও বাড়ে।

QR কোডে কিছু বাড়তি তথ্য রাখা থাকে, যাতে কোডের একটু অংশ নষ্ট বা ঢাকা পড়লেও পড়া যায়। টুলে মাত্রা চার ধাপের: L (কম), M (মাঝারি, গোড়ার), Q (বেশি), H (সর্বোচ্চ)। মাত্রা বাড়ালে কোড বেশি ক্ষতি সইতে পারে, কিন্তু একই লেখার জন্য ঘর বাড়ে। ৪৮ অক্ষরের সেই লিংকটার হিসাব:

  • L: ২৯ × ২৯
  • M: ৩৩ × ৩৩
  • Q: ৩৭ × ৩৭
  • H: ৪১ × ৪১

একই চওড়ায় ছাপলে H-এর প্রতিটি ঘর L-এর তুলনায় প্রায় ২৫ শতাংশ সরু (৩৭ ঘর বনাম ৪৯ ঘর, ফাঁকা অংশসহ)। অর্থাৎ বেশি মাত্রা সবসময় ভালো নয়। বাড়তি সুরক্ষা আর ঘরের আকার, দুটো মিলিয়ে ভাবতে হয়।

ঘরোয়া কাজে M-ই ঠিক আছে। দেয়ালে সাঁটা পোস্টার, যেখানে ময়লা লাগতে পারে বা কোণ ছিঁড়তে পারে, সেখানে Q বা H ভাবা যায়। কোডের ওপর নিজে একটি লোগো বসালে কোডের কিছু অংশ ঢাকা পড়ে। তখন মাত্রা H রাখুন আর স্ক্যান করে যাচাই করুন। উল্লেখ্য, এই টুলে লোগো বসানোর সুবিধা নেই, লোগো বসাতে হয় ছবি সম্পাদনার অন্য কোনো অ্যাপে, আর তারপর নিজে পরীক্ষা করে নিতে হয়।

বাংলা লেখা বেশি জায়গা নেয়

কোডে সরাসরি বাংলা বার্তা দিতে চাইলে একটি জিনিস চোখে পড়বে। আমি একটি বাংলা বাক্য (“স্বাগতম! আমাদের দোকানে আসার জন্য ধন্যবাদ।”, ৪১টি ইউনিকোড চিহ্ন, কার ও হসন্তসহ) আর একটি ৪৩ অক্ষরের কাল্পনিক ইংরেজি বাক্য টুলের লাইব্রেরিতে দিয়ে দেখেছি। দৈর্ঘ্য প্রায় এক, ফল কিন্তু আলাদা:

  • ইংরেজি বাক্য, ৪৩ বাইট, মাত্রা M: ৩৩ × ৩৩ ঘর।
  • বাংলা বাক্য, ১১১ বাইট, মাত্রা M: ৪৫ × ৪৫ ঘর।

কারণ, বাংলা অক্ষর ইউনিকোডে সাধারণত তিন বাইট করে নেয়, আর কোড গোনে বাইটের হিসাবে। তাই ছাপার কোডে লম্বা বাংলা বার্তা না দিয়ে লিংক দিন, আর বার্তাটা লিংকের পাতায় রাখুন। ছোট একটি শব্দ বা বাক্য হলে অসুবিধা নেই, কিন্তু কোড ছোট করে ছাপতে হলে বাংলা লেখা সরাসরি কোডে না ঢোকানোই ভালো।

মাপ আর ছবির ফাইল

টুলে ছবির মাপ বাছার তালিকা: ২৫৬, ৩৮৪ (গোড়ার), ৫১২ আর ১০২৪ px। একটি মজার ব্যাপার আছে। কোডের প্রতিটি ঘর পূর্ণসংখ্যক পিক্সেলের হয়, তাই ছবির আসল মাপ বাছা মাপের চেয়ে সামান্য কম হতে পারে। ২৫ ঘরের কোডে (মোট ৩৩ ঘর, ফাঁকা সহ):

  • ২৫৬ বাছলে প্রতি ঘর ৭ px, ছবি ২৩১ px।
  • ৩৮৪ বাছলে প্রতি ঘর ১১ px, ছবি ৩৬৩ px।
  • ৫১২ বাছলে প্রতি ঘর ১৫ px, ছবি ৪৯৫ px।
  • ১০২৪ বাছলে প্রতি ঘর ৩১ px, ছবি ১,০২৩ px।

একই মাপে ৪৫ ঘরের কোডে (মোট ৫৩ ঘর) প্রতি ঘর হয় ৪, ৭, ৯ ও ১৯ px। অর্থাৎ ১০২৪ বাছলেও লম্বা লিংকের কোডে ঘর ছোট থাকে। ছাপার জন্য টুলের নিজের পরামর্শ: PNG নিলে ১০২৪ px বাছুন, আর যত বড় ছাপবেন, SVG তত নিরাপদ, কারণ সেটি বড় করলে ঝাপসা হয় না। SVG-তে ঘর পিক্সেলে বাঁধা থাকে না, তাই নকশার অ্যাপে বড় করলেও কিনারা ধারালো থাকে।

আর কোডটা বসানোর সময় তিনটি কথা মাথায় রাখুন। ছবিটাকে লম্বা বা চওড়া করে টানবেন না, বর্গাকারই রাখুন (এটা সাধারণ জ্ঞান)। চারপাশের সাদা ফ্রেম ছাঁটবেন না। আর ছোট PNG-কে বড় করে ছাপলে ঘর ঝাপসা হয়, তাই বড় ছাপায় আগেই বড় মাপ বা SVG নিন।

রঙের খেলায় সাবধান

তিনটি রঙের জুটিতে একই কোড: গাঢ় কোড হালকা পেছনে, হালকা কোড গাঢ় পেছনে, আর কাছাকাছি দুই রং
টুল শেষ দুই জুটিতে সতর্কবার্তা দেখায়।

টুলে কোডের রং আর পেছনের রং আলাদা করে বাছা যায়। ব্র্যান্ডের রঙে কোড বানাতে ইচ্ছে করে, আর তা করাও যায়, শর্ত একটাই: কোড গাঢ়, পেছন হালকা। গোড়ার রং (#0c1612 আর সাদা) ভালো কাজ করে। রং বদলালে টুল দুই অবস্থায় সতর্কবার্তা দেখায়:

  • কোডের রং পেছনের রঙের চেয়ে হালকা হলে। অনেক স্ক্যানার উল্টো কোড পড়তে পারে না।
  • দুই রঙের পার্থক্য কম হলে (টুল এটা মাপে উজ্জ্বলতার অনুপাত দিয়ে, ৪-এর নিচে নামলেই সতর্ক করে)। গোড়ার রঙের অনুপাত প্রায় ১৮.৪।

সতর্কবার্তা না এলেই কোড নিরাপদ, এমন ধরে নেবেন না। বার্তা একটা ইঙ্গিত, নিশ্চয়তা নয়। ছাপার পর ফোনে স্ক্যান করে দেখাই আসল পরীক্ষা।

ছাপাখানায় দেওয়ার আগে

  1. লিংকটা শেষবার খুলে দেখুন। ছাপার পর লিংক বদলানো যায় না, নতুন কোড বানাতে হয়।
  2. পরীক্ষামূলক এক কপি ছাপুন। কাগজের ছাপা কোড পর্দার কোডের মতো নয়। আসল মাপে ছাপা কপি ফোনে স্ক্যান করুন।
  3. দুটি আলাদা ফোনে চেষ্টা করুন, অন্তত একটা পুরোনো মডেল হলে ভালো।
  4. যেখানে মানুষ দাঁড়াবে সেই দূরত্ব থেকে স্ক্যান করুন। ব্যানার হলে দেয়ালে টাঙিয়ে একটু দূরে দাঁড়িয়ে চেষ্টা করুন। (এটা আমার সাধারণ পরামর্শ, টুলের কিছু নয়)
  5. চকচকে কাগজে ঝলক দেখুন। আলো পড়ে কোডের কিছু অংশ ঝলমল করলে ফোন পড়তে পারে না। তাই চকচকে কাগজ ব্যবহার করলে নানা কোণ থেকে একবার দেখে নিন (এটাও সাধারণ অভিজ্ঞতা, টুলের পরীক্ষা নয়)।

সীমাবদ্ধতা ও হালনাগাদ: কোডের ঘরের সংখ্যা ও পিক্সেলের হিসাব টুলের নিজের লাইব্রেরি ও নিয়ম অনুযায়ী বের করা, কিন্তু কোনো আসল ফোন, ব্যানার বা ছাপা কাগজে মাপিনি। কত ছোট করে ছাপলে কোড পড়া যায়, এর কোনো নির্দিষ্ট মাপ আমি বলছি না, কারণ তা ফোন, আলো ও কাগজের ওপর নির্ভর করে। লিংক, নাম ও সংখ্যা সব কাল্পনিক উদাহরণ (sellshop.com.bd ছাড়া)। ছাপার আগে নিজে স্ক্যান করে মিলিয়ে নিন। হালনাগাদ: ২৫ অক্টোবর ২০২৬।

সাধারণ প্রশ্ন

ছাপার জন্য PNG নেব, না SVG?

SVG নিন। যত বড় করে ছাপুন, কোড ঝাপসা হয় না। PNG নিলে ১০২৪ px মাপ বেছে নিন।

কোডে লোগো বসালে স্ক্যান হবে?

লোগো বসালে কোডের কিছু অংশ ঢাকা পড়ে। তখন ভুল সংশোধনের মাত্রা সর্বোচ্চ (H) রাখুন এবং স্ক্যান করে যাচাই করুন। এই টুলে লোগো বসানোর সুবিধা নেই।

লিংক বড় হলে কী করব?

লিংক ছোট করুন, বা নিজের সাইটে একটি ছোট ঠিকানা বানিয়ে সেটা কোডে দিন। টুল লেখা বেশি বড় হলে বার্তা দেখায় এবং লেখা ছোট করতে বা মাত্রা কমাতে বলে।

কোডের মেয়াদ থাকে?

না। লিংক বা লেখা যতদিন ঠিক থাকে, কোড ততদিনই কাজ করে।

বাংলা অক্ষরের কোড কেন বড় হয়?

কারণ বাংলা অক্ষর বেশি বাইট নেয়। আমার পরীক্ষায় একই দৈর্ঘ্যের ইংরেজি বাক্য ৩৩ × ৩৩ ঘরের, বাংলা বাক্য ৪৫ × ৪৫ ঘরের হয়েছে।