Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

These modules generate SVG for QR Codes and 128 Bar Codes written in pure JavaScript.

Usage

128 BarCode

import{BarCode}from'https://tool.raha.group/svg/barcode.js';document.body.append(BarCode.generate({message: 'https://raha.group',width: 320,// 0 is used for auto-width. auto-width depends on the length of generated barcode.height: 80,// 0 is used for auto-height.horizontalPadding: 20,// in pixelverticalPadding: 16,// in pixelforeground: '#000',// line colorbackground: '#fff',}));
  • horizontalPadding or verticalPadding: Set 0 to discard padding. If (any) padding value is more than relative dimension (width or height) value then barcode will be rotated by 180 degrees respectively.

QRCode

import{QRCode}from'https://tool.raha.group/svg/qrcode.js';document.body.append(QRCode.generate({message: 'https://raha.group',size: 256,// in pixelpadding: 16,// in pixelecl: 'M',// ECL is a short form for "error correction levels" and is used for "recovery capacity" based on "L" = low (7%), "M" = medium (15%), "Q" = quartile (25%) and "H" = high (30%).swap: false,// swap the X and Y modules, some users have problems with the QRCodeforeground: "#000000",background: "#f2f4f8",}));

Low-Level Mechanisms of QR Codes and Barcodes

QR Codes and Code 128 barcodes encode data using distinct low-level mechanisms. Below is a detailed breakdown of their structures, encoding processes, and error-handling methods:

Code 128 Barcodes (Linear)

  1. Structure:

    • Bars/Spaces: Each character is represented by 3 bars and 3 spaces, with widths of 1–4 modules (units). Each bar/space is 1–4 modules wide.
    • Character Set: Encodes all 128 ASCII characters via three code sets (A, B, C). Start character (A/B/C) selects the initial set.
    • Symbol Components:
      • Start Character: Determines code set.
      • Data Characters: Encoded sequentially.
      • Checksum: Weighted modulo-103 sum of start + data characters.
      • Stop Character: 13-module pattern (2 bars, 2 spaces).
  2. Encoding Process:

    • Code Set Selection: Choose A (control chars), B (text), or C (numeric pairs for compression).
    • Checksum Calculation:
      • Sum = Start value + Σ (Character value × Position).
      • Checksum = Sum mod 103.
    • Pattern Mapping: Each character maps to a predefined 11-module pattern of bars/spaces.
  3. Error Detection:

    • Checksum validates data integrity. Invalid checksum triggers a rescan.
  4. Scanning:

    • Scanners measure bar/space widths, convert to characters, verify checksum, and output data.

QR Codes (2D Matrix)

  1. Structure:

    • Modules: Black/white squares arranged in a grid. Size depends on version (1–40, up to 177×177 modules).
    • Functional Patterns:
      • Finder Patterns: Three squares at corners for orientation.
      • Alignment Patterns: Smaller squares to correct distortion.
      • Timing Patterns: Alternating modules to calibrate grid size.
    • Data Regions: Encoded data and error correction codewords.
  2. Encoding Process:

    • Data Analysis: Choose mode (numeric, alphanumeric, byte, Kanji) and error correction level (L/M/Q/H).
    • Data Encoding:
      • Convert input to bitstream with mode indicator, character count, and data.
      • Split into blocks for Reed-Solomon error correction.
    • Error Correction: Add Reed-Solomon codewords (per block) based on error correction level.
    • Matrix Construction:
      • Place functional patterns.
      • Fill data codewords in zigzag pattern, avoiding reserved areas.
    • Masking: Apply one of 8 mask patterns to minimize scanning issues (e.g., large blank areas). Format/version info is encoded around finders.
  3. Error Correction:

    • Reed-Solomon codes correct errors/damage. Higher correction levels (e.g., H) allow up to 30% data recovery.
  4. Scanning:

    • Locate finder/alignment patterns to align the grid.
    • Read format/version info to determine masking.
    • Unmask data, decode bitstream, correct errors, and output content.

Key Differences

AspectCode 128QR Code
Dimensionality1D (linear)2D (matrix)
Data Capacity~20–25 charsUp to 3KB (numeric)
Error HandlingChecksum (detection only)Reed-Solomon (detection + correction)
Use CaseSimple text (e.g., product labels)Complex data (URLs, Wi-Fi credentials)
StructureBars/spaces with start/stop patternsGrid with functional and data modules

Summary

  • Code 128: Linear encoding via bar/space widths, limited capacity, checksum-based validation.
  • QR Code: 2D matrix with functional patterns, high capacity, robust error correction, and Reed-Solomon codes. Both rely on precise low-level pattern mapping and scanning algorithms.

License

This work is licensed by RahaGroup under CC BY-SA 4.0.

About

cross-browser and lightweight ESM-only modules to generate SVG for QR Code and 128 Barcode.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

These modules generate SVG for QR Codes and 128 Bar Codes written in pure JavaScript.

Usage

128 BarCode

import{BarCode}from'https://tool.raha.group/svg/barcode.js';document.body.append(BarCode.generate({message: 'https://raha.group',width: 320,// 0 is used for auto-width. auto-width depends on the length of generated barcode.height: 80,// 0 is used for auto-height.horizontalPadding: 20,// in pixelverticalPadding: 16,// in pixelforeground: '#000',// line colorbackground: '#fff',}));
  • horizontalPadding or verticalPadding: Set 0 to discard padding. If (any) padding value is more than relative dimension (width or height) value then barcode will be rotated by 180 degrees respectively.

QRCode

import{QRCode}from'https://tool.raha.group/svg/qrcode.js';document.body.append(QRCode.generate({message: 'https://raha.group',size: 256,// in pixelpadding: 16,// in pixelecl: 'M',// ECL is a short form for "error correction levels" and is used for "recovery capacity" based on "L" = low (7%), "M" = medium (15%), "Q" = quartile (25%) and "H" = high (30%).swap: false,// swap the X and Y modules, some users have problems with the QRCodeforeground: "#000000",background: "#f2f4f8",}));

Low-Level Mechanisms of QR Codes and Barcodes

QR Codes and Code 128 barcodes encode data using distinct low-level mechanisms. Below is a detailed breakdown of their structures, encoding processes, and error-handling methods:

Code 128 Barcodes (Linear)

  1. Structure:

    • Bars/Spaces: Each character is represented by 3 bars and 3 spaces, with widths of 1–4 modules (units). Each bar/space is 1–4 modules wide.
    • Character Set: Encodes all 128 ASCII characters via three code sets (A, B, C). Start character (A/B/C) selects the initial set.
    • Symbol Components:
      • Start Character: Determines code set.
      • Data Characters: Encoded sequentially.
      • Checksum: Weighted modulo-103 sum of start + data characters.
      • Stop Character: 13-module pattern (2 bars, 2 spaces).
  2. Encoding Process:

    • Code Set Selection: Choose A (control chars), B (text), or C (numeric pairs for compression).
    • Checksum Calculation:
      • Sum = Start value + Σ (Character value × Position).
      • Checksum = Sum mod 103.
    • Pattern Mapping: Each character maps to a predefined 11-module pattern of bars/spaces.
  3. Error Detection:

    • Checksum validates data integrity. Invalid checksum triggers a rescan.
  4. Scanning:

    • Scanners measure bar/space widths, convert to characters, verify checksum, and output data.

QR Codes (2D Matrix)

  1. Structure:

    • Modules: Black/white squares arranged in a grid. Size depends on version (1–40, up to 177×177 modules).
    • Functional Patterns:
      • Finder Patterns: Three squares at corners for orientation.
      • Alignment Patterns: Smaller squares to correct distortion.
      • Timing Patterns: Alternating modules to calibrate grid size.
    • Data Regions: Encoded data and error correction codewords.
  2. Encoding Process:

    • Data Analysis: Choose mode (numeric, alphanumeric, byte, Kanji) and error correction level (L/M/Q/H).
    • Data Encoding:
      • Convert input to bitstream with mode indicator, character count, and data.
      • Split into blocks for Reed-Solomon error correction.
    • Error Correction: Add Reed-Solomon codewords (per block) based on error correction level.
    • Matrix Construction:
      • Place functional patterns.
      • Fill data codewords in zigzag pattern, avoiding reserved areas.
    • Masking: Apply one of 8 mask patterns to minimize scanning issues (e.g., large blank areas). Format/version info is encoded around finders.
  3. Error Correction:

    • Reed-Solomon codes correct errors/damage. Higher correction levels (e.g., H) allow up to 30% data recovery.
  4. Scanning:

    • Locate finder/alignment patterns to align the grid.
    • Read format/version info to determine masking.
    • Unmask data, decode bitstream, correct errors, and output content.

Key Differences

AspectCode 128QR Code
Dimensionality1D (linear)2D (matrix)
Data Capacity~20–25 charsUp to 3KB (numeric)
Error HandlingChecksum (detection only)Reed-Solomon (detection + correction)
Use CaseSimple text (e.g., product labels)Complex data (URLs, Wi-Fi credentials)
StructureBars/spaces with start/stop patternsGrid with functional and data modules

Summary

  • Code 128: Linear encoding via bar/space widths, limited capacity, checksum-based validation.
  • QR Code: 2D matrix with functional patterns, high capacity, robust error correction, and Reed-Solomon codes. Both rely on precise low-level pattern mapping and scanning algorithms.

License

This work is licensed by RahaGroup under CC BY-SA 4.0.

About

cross-browser and lightweight ESM-only modules to generate SVG for QR Code and 128 Barcode.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

These modules generate SVG for QR Codes and 128 Bar Codes written in pure JavaScript.

Usage

128 BarCode

import{BarCode}from'https://tool.raha.group/svg/barcode.js';document.body.append(BarCode.generate({message: 'https://raha.group',width: 320,// 0 is used for auto-width. auto-width depends on the length of generated barcode.height: 80,// 0 is used for auto-height.horizontalPadding: 20,// in pixelverticalPadding: 16,// in pixelforeground: '#000',// line colorbackground: '#fff',}));
  • horizontalPadding or verticalPadding: Set 0 to discard padding. If (any) padding value is more than relative dimension (width or height) value then barcode will be rotated by 180 degrees respectively.

QRCode

import{QRCode}from'https://tool.raha.group/svg/qrcode.js';document.body.append(QRCode.generate({message: 'https://raha.group',size: 256,// in pixelpadding: 16,// in pixelecl: 'M',// ECL is a short form for "error correction levels" and is used for "recovery capacity" based on "L" = low (7%), "M" = medium (15%), "Q" = quartile (25%) and "H" = high (30%).swap: false,// swap the X and Y modules, some users have problems with the QRCodeforeground: "#000000",background: "#f2f4f8",}));

Low-Level Mechanisms of QR Codes and Barcodes

QR Codes and Code 128 barcodes encode data using distinct low-level mechanisms. Below is a detailed breakdown of their structures, encoding processes, and error-handling methods:

Code 128 Barcodes (Linear)

  1. Structure:

    • Bars/Spaces: Each character is represented by 3 bars and 3 spaces, with widths of 1–4 modules (units). Each bar/space is 1–4 modules wide.
    • Character Set: Encodes all 128 ASCII characters via three code sets (A, B, C). Start character (A/B/C) selects the initial set.
    • Symbol Components:
      • Start Character: Determines code set.
      • Data Characters: Encoded sequentially.
      • Checksum: Weighted modulo-103 sum of start + data characters.
      • Stop Character: 13-module pattern (2 bars, 2 spaces).
  2. Encoding Process:

    • Code Set Selection: Choose A (control chars), B (text), or C (numeric pairs for compression).
    • Checksum Calculation:
      • Sum = Start value + Σ (Character value × Position).
      • Checksum = Sum mod 103.
    • Pattern Mapping: Each character maps to a predefined 11-module pattern of bars/spaces.
  3. Error Detection:

    • Checksum validates data integrity. Invalid checksum triggers a rescan.
  4. Scanning:

    • Scanners measure bar/space widths, convert to characters, verify checksum, and output data.

QR Codes (2D Matrix)

  1. Structure:

    • Modules: Black/white squares arranged in a grid. Size depends on version (1–40, up to 177×177 modules).
    • Functional Patterns:
      • Finder Patterns: Three squares at corners for orientation.
      • Alignment Patterns: Smaller squares to correct distortion.
      • Timing Patterns: Alternating modules to calibrate grid size.
    • Data Regions: Encoded data and error correction codewords.
  2. Encoding Process:

    • Data Analysis: Choose mode (numeric, alphanumeric, byte, Kanji) and error correction level (L/M/Q/H).
    • Data Encoding:
      • Convert input to bitstream with mode indicator, character count, and data.
      • Split into blocks for Reed-Solomon error correction.
    • Error Correction: Add Reed-Solomon codewords (per block) based on error correction level.
    • Matrix Construction:
      • Place functional patterns.
      • Fill data codewords in zigzag pattern, avoiding reserved areas.
    • Masking: Apply one of 8 mask patterns to minimize scanning issues (e.g., large blank areas). Format/version info is encoded around finders.
  3. Error Correction:

    • Reed-Solomon codes correct errors/damage. Higher correction levels (e.g., H) allow up to 30% data recovery.
  4. Scanning:

    • Locate finder/alignment patterns to align the grid.
    • Read format/version info to determine masking.
    • Unmask data, decode bitstream, correct errors, and output content.

Key Differences

AspectCode 128QR Code
Dimensionality1D (linear)2D (matrix)
Data Capacity~20–25 charsUp to 3KB (numeric)
Error HandlingChecksum (detection only)Reed-Solomon (detection + correction)
Use CaseSimple text (e.g., product labels)Complex data (URLs, Wi-Fi credentials)
StructureBars/spaces with start/stop patternsGrid with functional and data modules

Summary

  • Code 128: Linear encoding via bar/space widths, limited capacity, checksum-based validation.
  • QR Code: 2D matrix with functional patterns, high capacity, robust error correction, and Reed-Solomon codes. Both rely on precise low-level pattern mapping and scanning algorithms.

License

This work is licensed by RahaGroup under CC BY-SA 4.0.

About

cross-browser and lightweight ESM-only modules to generate SVG for QR Code and 128 Barcode.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

These modules generate SVG for QR Codes and 128 Bar Codes written in pure JavaScript.

Usage

128 BarCode

import{BarCode}from'https://tool.raha.group/svg/barcode.js';document.body.append(BarCode.generate({message: 'https://raha.group',width: 320,// 0 is used for auto-width. auto-width depends on the length of generated barcode.height: 80,// 0 is used for auto-height.horizontalPadding: 20,// in pixelverticalPadding: 16,// in pixelforeground: '#000',// line colorbackground: '#fff',}));
  • horizontalPadding or verticalPadding: Set 0 to discard padding. If (any) padding value is more than relative dimension (width or height) value then barcode will be rotated by 180 degrees respectively.

QRCode

import{QRCode}from'https://tool.raha.group/svg/qrcode.js';document.body.append(QRCode.generate({message: 'https://raha.group',size: 256,// in pixelpadding: 16,// in pixelecl: 'M',// ECL is a short form for "error correction levels" and is used for "recovery capacity" based on "L" = low (7%), "M" = medium (15%), "Q" = quartile (25%) and "H" = high (30%).swap: false,// swap the X and Y modules, some users have problems with the QRCodeforeground: "#000000",background: "#f2f4f8",}));

Low-Level Mechanisms of QR Codes and Barcodes

QR Codes and Code 128 barcodes encode data using distinct low-level mechanisms. Below is a detailed breakdown of their structures, encoding processes, and error-handling methods:

Code 128 Barcodes (Linear)

  1. Structure:

    • Bars/Spaces: Each character is represented by 3 bars and 3 spaces, with widths of 1–4 modules (units). Each bar/space is 1–4 modules wide.
    • Character Set: Encodes all 128 ASCII characters via three code sets (A, B, C). Start character (A/B/C) selects the initial set.
    • Symbol Components:
      • Start Character: Determines code set.
      • Data Characters: Encoded sequentially.
      • Checksum: Weighted modulo-103 sum of start + data characters.
      • Stop Character: 13-module pattern (2 bars, 2 spaces).
  2. Encoding Process:

    • Code Set Selection: Choose A (control chars), B (text), or C (numeric pairs for compression).
    • Checksum Calculation:
      • Sum = Start value + Σ (Character value × Position).
      • Checksum = Sum mod 103.
    • Pattern Mapping: Each character maps to a predefined 11-module pattern of bars/spaces.
  3. Error Detection:

    • Checksum validates data integrity. Invalid checksum triggers a rescan.
  4. Scanning:

    • Scanners measure bar/space widths, convert to characters, verify checksum, and output data.

QR Codes (2D Matrix)

  1. Structure:

    • Modules: Black/white squares arranged in a grid. Size depends on version (1–40, up to 177×177 modules).
    • Functional Patterns:
      • Finder Patterns: Three squares at corners for orientation.
      • Alignment Patterns: Smaller squares to correct distortion.
      • Timing Patterns: Alternating modules to calibrate grid size.
    • Data Regions: Encoded data and error correction codewords.
  2. Encoding Process:

    • Data Analysis: Choose mode (numeric, alphanumeric, byte, Kanji) and error correction level (L/M/Q/H).
    • Data Encoding:
      • Convert input to bitstream with mode indicator, character count, and data.
      • Split into blocks for Reed-Solomon error correction.
    • Error Correction: Add Reed-Solomon codewords (per block) based on error correction level.
    • Matrix Construction:
      • Place functional patterns.
      • Fill data codewords in zigzag pattern, avoiding reserved areas.
    • Masking: Apply one of 8 mask patterns to minimize scanning issues (e.g., large blank areas). Format/version info is encoded around finders.
  3. Error Correction:

    • Reed-Solomon codes correct errors/damage. Higher correction levels (e.g., H) allow up to 30% data recovery.
  4. Scanning:

    • Locate finder/alignment patterns to align the grid.
    • Read format/version info to determine masking.
    • Unmask data, decode bitstream, correct errors, and output content.

Key Differences

AspectCode 128QR Code
Dimensionality1D (linear)2D (matrix)
Data Capacity~20–25 charsUp to 3KB (numeric)
Error HandlingChecksum (detection only)Reed-Solomon (detection + correction)
Use CaseSimple text (e.g., product labels)Complex data (URLs, Wi-Fi credentials)
StructureBars/spaces with start/stop patternsGrid with functional and data modules

Summary

  • Code 128: Linear encoding via bar/space widths, limited capacity, checksum-based validation.
  • QR Code: 2D matrix with functional patterns, high capacity, robust error correction, and Reed-Solomon codes. Both rely on precise low-level pattern mapping and scanning algorithms.

License

This work is licensed by RahaGroup under CC BY-SA 4.0.

About

cross-browser and lightweight ESM-only modules to generate SVG for QR Code and 128 Barcode.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

These modules generate SVG for QR Codes and 128 Bar Codes written in pure JavaScript.

Usage

128 BarCode

import{BarCode}from'https://tool.raha.group/svg/barcode.js';document.body.append(BarCode.generate({message: 'https://raha.group',width: 320,// 0 is used for auto-width. auto-width depends on the length of generated barcode.height: 80,// 0 is used for auto-height.horizontalPadding: 20,// in pixelverticalPadding: 16,// in pixelforeground: '#000',// line colorbackground: '#fff',}));
  • horizontalPadding or verticalPadding: Set 0 to discard padding. If (any) padding value is more than relative dimension (width or height) value then barcode will be rotated by 180 degrees respectively.

QRCode

import{QRCode}from'https://tool.raha.group/svg/qrcode.js';document.body.append(QRCode.generate({message: 'https://raha.group',size: 256,// in pixelpadding: 16,// in pixelecl: 'M',// ECL is a short form for "error correction levels" and is used for "recovery capacity" based on "L" = low (7%), "M" = medium (15%), "Q" = quartile (25%) and "H" = high (30%).swap: false,// swap the X and Y modules, some users have problems with the QRCodeforeground: "#000000",background: "#f2f4f8",}));

Low-Level Mechanisms of QR Codes and Barcodes

QR Codes and Code 128 barcodes encode data using distinct low-level mechanisms. Below is a detailed breakdown of their structures, encoding processes, and error-handling methods:

Code 128 Barcodes (Linear)

  1. Structure:

    • Bars/Spaces: Each character is represented by 3 bars and 3 spaces, with widths of 1–4 modules (units). Each bar/space is 1–4 modules wide.
    • Character Set: Encodes all 128 ASCII characters via three code sets (A, B, C). Start character (A/B/C) selects the initial set.
    • Symbol Components:
      • Start Character: Determines code set.
      • Data Characters: Encoded sequentially.
      • Checksum: Weighted modulo-103 sum of start + data characters.
      • Stop Character: 13-module pattern (2 bars, 2 spaces).
  2. Encoding Process:

    • Code Set Selection: Choose A (control chars), B (text), or C (numeric pairs for compression).
    • Checksum Calculation:
      • Sum = Start value + Σ (Character value × Position).
      • Checksum = Sum mod 103.
    • Pattern Mapping: Each character maps to a predefined 11-module pattern of bars/spaces.
  3. Error Detection:

    • Checksum validates data integrity. Invalid checksum triggers a rescan.
  4. Scanning:

    • Scanners measure bar/space widths, convert to characters, verify checksum, and output data.

QR Codes (2D Matrix)

  1. Structure:

    • Modules: Black/white squares arranged in a grid. Size depends on version (1–40, up to 177×177 modules).
    • Functional Patterns:
      • Finder Patterns: Three squares at corners for orientation.
      • Alignment Patterns: Smaller squares to correct distortion.
      • Timing Patterns: Alternating modules to calibrate grid size.
    • Data Regions: Encoded data and error correction codewords.
  2. Encoding Process:

    • Data Analysis: Choose mode (numeric, alphanumeric, byte, Kanji) and error correction level (L/M/Q/H).
    • Data Encoding:
      • Convert input to bitstream with mode indicator, character count, and data.
      • Split into blocks for Reed-Solomon error correction.
    • Error Correction: Add Reed-Solomon codewords (per block) based on error correction level.
    • Matrix Construction:
      • Place functional patterns.
      • Fill data codewords in zigzag pattern, avoiding reserved areas.
    • Masking: Apply one of 8 mask patterns to minimize scanning issues (e.g., large blank areas). Format/version info is encoded around finders.
  3. Error Correction:

    • Reed-Solomon codes correct errors/damage. Higher correction levels (e.g., H) allow up to 30% data recovery.
  4. Scanning:

    • Locate finder/alignment patterns to align the grid.
    • Read format/version info to determine masking.
    • Unmask data, decode bitstream, correct errors, and output content.

Key Differences

AspectCode 128QR Code
Dimensionality1D (linear)2D (matrix)
Data Capacity~20–25 charsUp to 3KB (numeric)
Error HandlingChecksum (detection only)Reed-Solomon (detection + correction)
Use CaseSimple text (e.g., product labels)Complex data (URLs, Wi-Fi credentials)
StructureBars/spaces with start/stop patternsGrid with functional and data modules

Summary

  • Code 128: Linear encoding via bar/space widths, limited capacity, checksum-based validation.
  • QR Code: 2D matrix with functional patterns, high capacity, robust error correction, and Reed-Solomon codes. Both rely on precise low-level pattern mapping and scanning algorithms.

License

This work is licensed by RahaGroup under CC BY-SA 4.0.

About

cross-browser and lightweight ESM-only modules to generate SVG for QR Code and 128 Barcode.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

These modules generate SVG for QR Codes and 128 Bar Codes written in pure JavaScript.

Usage

128 BarCode

import{BarCode}from'https://tool.raha.group/svg/barcode.js';document.body.append(BarCode.generate({message: 'https://raha.group',width: 320,// 0 is used for auto-width. auto-width depends on the length of generated barcode.height: 80,// 0 is used for auto-height.horizontalPadding: 20,// in pixelverticalPadding: 16,// in pixelforeground: '#000',// line colorbackground: '#fff',}));
  • horizontalPadding or verticalPadding: Set 0 to discard padding. If (any) padding value is more than relative dimension (width or height) value then barcode will be rotated by 180 degrees respectively.

QRCode

import{QRCode}from'https://tool.raha.group/svg/qrcode.js';document.body.append(QRCode.generate({message: 'https://raha.group',size: 256,// in pixelpadding: 16,// in pixelecl: 'M',// ECL is a short form for "error correction levels" and is used for "recovery capacity" based on "L" = low (7%), "M" = medium (15%), "Q" = quartile (25%) and "H" = high (30%).swap: false,// swap the X and Y modules, some users have problems with the QRCodeforeground: "#000000",background: "#f2f4f8",}));

Low-Level Mechanisms of QR Codes and Barcodes

QR Codes and Code 128 barcodes encode data using distinct low-level mechanisms. Below is a detailed breakdown of their structures, encoding processes, and error-handling methods:

Code 128 Barcodes (Linear)

  1. Structure:

    • Bars/Spaces: Each character is represented by 3 bars and 3 spaces, with widths of 1–4 modules (units). Each bar/space is 1–4 modules wide.
    • Character Set: Encodes all 128 ASCII characters via three code sets (A, B, C). Start character (A/B/C) selects the initial set.
    • Symbol Components:
      • Start Character: Determines code set.
      • Data Characters: Encoded sequentially.
      • Checksum: Weighted modulo-103 sum of start + data characters.
      • Stop Character: 13-module pattern (2 bars, 2 spaces).
  2. Encoding Process:

    • Code Set Selection: Choose A (control chars), B (text), or C (numeric pairs for compression).
    • Checksum Calculation:
      • Sum = Start value + Σ (Character value × Position).
      • Checksum = Sum mod 103.
    • Pattern Mapping: Each character maps to a predefined 11-module pattern of bars/spaces.
  3. Error Detection:

    • Checksum validates data integrity. Invalid checksum triggers a rescan.
  4. Scanning:

    • Scanners measure bar/space widths, convert to characters, verify checksum, and output data.

QR Codes (2D Matrix)

  1. Structure:

    • Modules: Black/white squares arranged in a grid. Size depends on version (1–40, up to 177×177 modules).
    • Functional Patterns:
      • Finder Patterns: Three squares at corners for orientation.
      • Alignment Patterns: Smaller squares to correct distortion.
      • Timing Patterns: Alternating modules to calibrate grid size.
    • Data Regions: Encoded data and error correction codewords.
  2. Encoding Process:

    • Data Analysis: Choose mode (numeric, alphanumeric, byte, Kanji) and error correction level (L/M/Q/H).
    • Data Encoding:
      • Convert input to bitstream with mode indicator, character count, and data.
      • Split into blocks for Reed-Solomon error correction.
    • Error Correction: Add Reed-Solomon codewords (per block) based on error correction level.
    • Matrix Construction:
      • Place functional patterns.
      • Fill data codewords in zigzag pattern, avoiding reserved areas.
    • Masking: Apply one of 8 mask patterns to minimize scanning issues (e.g., large blank areas). Format/version info is encoded around finders.
  3. Error Correction:

    • Reed-Solomon codes correct errors/damage. Higher correction levels (e.g., H) allow up to 30% data recovery.
  4. Scanning:

    • Locate finder/alignment patterns to align the grid.
    • Read format/version info to determine masking.
    • Unmask data, decode bitstream, correct errors, and output content.

Key Differences

AspectCode 128QR Code
Dimensionality1D (linear)2D (matrix)
Data Capacity~20–25 charsUp to 3KB (numeric)
Error HandlingChecksum (detection only)Reed-Solomon (detection + correction)
Use CaseSimple text (e.g., product labels)Complex data (URLs, Wi-Fi credentials)
StructureBars/spaces with start/stop patternsGrid with functional and data modules

Summary

  • Code 128: Linear encoding via bar/space widths, limited capacity, checksum-based validation.
  • QR Code: 2D matrix with functional patterns, high capacity, robust error correction, and Reed-Solomon codes. Both rely on precise low-level pattern mapping and scanning algorithms.

License

This work is licensed by RahaGroup under CC BY-SA 4.0.

About

cross-browser and lightweight ESM-only modules to generate SVG for QR Code and 128 Barcode.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

These modules generate SVG for QR Codes and 128 Bar Codes written in pure JavaScript.

Usage

128 BarCode

import{BarCode}from'https://tool.raha.group/svg/barcode.js';document.body.append(BarCode.generate({message: 'https://raha.group',width: 320,// 0 is used for auto-width. auto-width depends on the length of generated barcode.height: 80,// 0 is used for auto-height.horizontalPadding: 20,// in pixelverticalPadding: 16,// in pixelforeground: '#000',// line colorbackground: '#fff',}));
  • horizontalPadding or verticalPadding: Set 0 to discard padding. If (any) padding value is more than relative dimension (width or height) value then barcode will be rotated by 180 degrees respectively.

QRCode

import{QRCode}from'https://tool.raha.group/svg/qrcode.js';document.body.append(QRCode.generate({message: 'https://raha.group',size: 256,// in pixelpadding: 16,// in pixelecl: 'M',// ECL is a short form for "error correction levels" and is used for "recovery capacity" based on "L" = low (7%), "M" = medium (15%), "Q" = quartile (25%) and "H" = high (30%).swap: false,// swap the X and Y modules, some users have problems with the QRCodeforeground: "#000000",background: "#f2f4f8",}));

Low-Level Mechanisms of QR Codes and Barcodes

QR Codes and Code 128 barcodes encode data using distinct low-level mechanisms. Below is a detailed breakdown of their structures, encoding processes, and error-handling methods:

Code 128 Barcodes (Linear)

  1. Structure:

    • Bars/Spaces: Each character is represented by 3 bars and 3 spaces, with widths of 1–4 modules (units). Each bar/space is 1–4 modules wide.
    • Character Set: Encodes all 128 ASCII characters via three code sets (A, B, C). Start character (A/B/C) selects the initial set.
    • Symbol Components:
      • Start Character: Determines code set.
      • Data Characters: Encoded sequentially.
      • Checksum: Weighted modulo-103 sum of start + data characters.
      • Stop Character: 13-module pattern (2 bars, 2 spaces).
  2. Encoding Process:

    • Code Set Selection: Choose A (control chars), B (text), or C (numeric pairs for compression).
    • Checksum Calculation:
      • Sum = Start value + Σ (Character value × Position).
      • Checksum = Sum mod 103.
    • Pattern Mapping: Each character maps to a predefined 11-module pattern of bars/spaces.
  3. Error Detection:

    • Checksum validates data integrity. Invalid checksum triggers a rescan.
  4. Scanning:

    • Scanners measure bar/space widths, convert to characters, verify checksum, and output data.

QR Codes (2D Matrix)

  1. Structure:

    • Modules: Black/white squares arranged in a grid. Size depends on version (1–40, up to 177×177 modules).
    • Functional Patterns:
      • Finder Patterns: Three squares at corners for orientation.
      • Alignment Patterns: Smaller squares to correct distortion.
      • Timing Patterns: Alternating modules to calibrate grid size.
    • Data Regions: Encoded data and error correction codewords.
  2. Encoding Process:

    • Data Analysis: Choose mode (numeric, alphanumeric, byte, Kanji) and error correction level (L/M/Q/H).
    • Data Encoding:
      • Convert input to bitstream with mode indicator, character count, and data.
      • Split into blocks for Reed-Solomon error correction.
    • Error Correction: Add Reed-Solomon codewords (per block) based on error correction level.
    • Matrix Construction:
      • Place functional patterns.
      • Fill data codewords in zigzag pattern, avoiding reserved areas.
    • Masking: Apply one of 8 mask patterns to minimize scanning issues (e.g., large blank areas). Format/version info is encoded around finders.
  3. Error Correction:

    • Reed-Solomon codes correct errors/damage. Higher correction levels (e.g., H) allow up to 30% data recovery.
  4. Scanning:

    • Locate finder/alignment patterns to align the grid.
    • Read format/version info to determine masking.
    • Unmask data, decode bitstream, correct errors, and output content.

Key Differences

AspectCode 128QR Code
Dimensionality1D (linear)2D (matrix)
Data Capacity~20–25 charsUp to 3KB (numeric)
Error HandlingChecksum (detection only)Reed-Solomon (detection + correction)
Use CaseSimple text (e.g., product labels)Complex data (URLs, Wi-Fi credentials)
StructureBars/spaces with start/stop patternsGrid with functional and data modules

Summary

  • Code 128: Linear encoding via bar/space widths, limited capacity, checksum-based validation.
  • QR Code: 2D matrix with functional patterns, high capacity, robust error correction, and Reed-Solomon codes. Both rely on precise low-level pattern mapping and scanning algorithms.

License

This work is licensed by RahaGroup under CC BY-SA 4.0.

About

cross-browser and lightweight ESM-only modules to generate SVG for QR Code and 128 Barcode.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

These modules generate SVG for QR Codes and 128 Bar Codes written in pure JavaScript.

Usage

128 BarCode

import{BarCode}from'https://tool.raha.group/svg/barcode.js';document.body.append(BarCode.generate({message: 'https://raha.group',width: 320,// 0 is used for auto-width. auto-width depends on the length of generated barcode.height: 80,// 0 is used for auto-height.horizontalPadding: 20,// in pixelverticalPadding: 16,// in pixelforeground: '#000',// line colorbackground: '#fff',}));
  • horizontalPadding or verticalPadding: Set 0 to discard padding. If (any) padding value is more than relative dimension (width or height) value then barcode will be rotated by 180 degrees respectively.

QRCode

import{QRCode}from'https://tool.raha.group/svg/qrcode.js';document.body.append(QRCode.generate({message: 'https://raha.group',size: 256,// in pixelpadding: 16,// in pixelecl: 'M',// ECL is a short form for "error correction levels" and is used for "recovery capacity" based on "L" = low (7%), "M" = medium (15%), "Q" = quartile (25%) and "H" = high (30%).swap: false,// swap the X and Y modules, some users have problems with the QRCodeforeground: "#000000",background: "#f2f4f8",}));

Low-Level Mechanisms of QR Codes and Barcodes

QR Codes and Code 128 barcodes encode data using distinct low-level mechanisms. Below is a detailed breakdown of their structures, encoding processes, and error-handling methods:

Code 128 Barcodes (Linear)

  1. Structure:

    • Bars/Spaces: Each character is represented by 3 bars and 3 spaces, with widths of 1–4 modules (units). Each bar/space is 1–4 modules wide.
    • Character Set: Encodes all 128 ASCII characters via three code sets (A, B, C). Start character (A/B/C) selects the initial set.
    • Symbol Components:
      • Start Character: Determines code set.
      • Data Characters: Encoded sequentially.
      • Checksum: Weighted modulo-103 sum of start + data characters.
      • Stop Character: 13-module pattern (2 bars, 2 spaces).
  2. Encoding Process:

    • Code Set Selection: Choose A (control chars), B (text), or C (numeric pairs for compression).
    • Checksum Calculation:
      • Sum = Start value + Σ (Character value × Position).
      • Checksum = Sum mod 103.
    • Pattern Mapping: Each character maps to a predefined 11-module pattern of bars/spaces.
  3. Error Detection:

    • Checksum validates data integrity. Invalid checksum triggers a rescan.
  4. Scanning:

    • Scanners measure bar/space widths, convert to characters, verify checksum, and output data.

QR Codes (2D Matrix)

  1. Structure:

    • Modules: Black/white squares arranged in a grid. Size depends on version (1–40, up to 177×177 modules).
    • Functional Patterns:
      • Finder Patterns: Three squares at corners for orientation.
      • Alignment Patterns: Smaller squares to correct distortion.
      • Timing Patterns: Alternating modules to calibrate grid size.
    • Data Regions: Encoded data and error correction codewords.
  2. Encoding Process:

    • Data Analysis: Choose mode (numeric, alphanumeric, byte, Kanji) and error correction level (L/M/Q/H).
    • Data Encoding:
      • Convert input to bitstream with mode indicator, character count, and data.
      • Split into blocks for Reed-Solomon error correction.
    • Error Correction: Add Reed-Solomon codewords (per block) based on error correction level.
    • Matrix Construction:
      • Place functional patterns.
      • Fill data codewords in zigzag pattern, avoiding reserved areas.
    • Masking: Apply one of 8 mask patterns to minimize scanning issues (e.g., large blank areas). Format/version info is encoded around finders.
  3. Error Correction:

    • Reed-Solomon codes correct errors/damage. Higher correction levels (e.g., H) allow up to 30% data recovery.
  4. Scanning:

    • Locate finder/alignment patterns to align the grid.
    • Read format/version info to determine masking.
    • Unmask data, decode bitstream, correct errors, and output content.

Key Differences

AspectCode 128QR Code
Dimensionality1D (linear)2D (matrix)
Data Capacity~20–25 charsUp to 3KB (numeric)
Error HandlingChecksum (detection only)Reed-Solomon (detection + correction)
Use CaseSimple text (e.g., product labels)Complex data (URLs, Wi-Fi credentials)
StructureBars/spaces with start/stop patternsGrid with functional and data modules

Summary

  • Code 128: Linear encoding via bar/space widths, limited capacity, checksum-based validation.
  • QR Code: 2D matrix with functional patterns, high capacity, robust error correction, and Reed-Solomon codes. Both rely on precise low-level pattern mapping and scanning algorithms.

License

This work is licensed by RahaGroup under CC BY-SA 4.0.

About

cross-browser and lightweight ESM-only modules to generate SVG for QR Code and 128 Barcode.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages