---
title: "Nízkoúrovňový enkodér — QR for Laravel | Roundly"
description: "Ovládajte enkodér ISO/IEC 18004 priamo — explicitné segmenty, kapacita, masky a objekty QrMatrix a EncodingInfo."
url: https://roundly-consulting.com/sk/open-source/navody/qr-for-laravel/enkoder
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[QR for Laravel](https://roundly-consulting.com/sk/open-source/navody/qr-for-laravel.md)

# Nízkoúrovňový enkodér

Encoder implementuje QR Code Model 2 (ISO/IEC 18004:2015) — nezávisle od frameworku a bez stavu okrem vyhľadávacích tabuliek nezávislých od vstupu, takže je bezpečný aj v dlhobežiacich workeroch. Pre explicitné segmenty ho použite priamo:

```php
use RoundlyConsulting\Qr\DataTransferObjects\EncodeOptions;
use RoundlyConsulting\Qr\Encoder\{Encoder, Segment};

$matrix = app(Encoder::class)->encode('data', new EncodeOptions(errorCorrection: ErrorCorrection::High));
$matrix = app(Encoder::class)->encodeSegments([Segment::alphanumeric('HELLO'), Segment::numeric('123')], new EncodeOptions);
Segment::totalBits([Segment::bytes('hi')], version: 1);   // ?int
```

Výsledné nastavenia s predvolenými hodnotami:

```php
new EncodeOptions(                    // the encoder's resolved options (defaults shown)
    errorCorrection: ErrorCorrection::Medium, minVersion: 1, maxVersion: 40, mask: null,
    boostErrorCorrection: true, eci: EciMode::Auto, segmentation: Segmentation::Optimal, kanji: false,
);
```

## Ako kóduje

- Segmentácia — Optimal (najkratšia kombinácia segmentov numeric, alphanumeric, byte a voliteľne kanji), Single (najúspornejší jediný režim) alebo Byte.
- Verzia — najmenšia verzia v povolenom rozsahu, do ktorej sa dáta zmestia; inak DataTooLongException s potrebným a dostupným počtom bitov.
- Zvyšovanie — zvýši M → Q → H, kým sa dáta zmestia do zvolenej verzie; verziu nikdy nemení a úroveň nikdy neznižuje.
- ECI 26 — v režime auto sa pridá len vtedy, keď byte segment obsahuje ne-ASCII UTF-8; ak je označenie potrebné, znaky kanji idú do UTF-8 byte segmentov.
- Maskovanie — všetkých osem masiek sa ohodnotí penalizačnými pravidlami ISO (pri zhode vyhrá najnižší index), alebo sa použije vynútená maska.
- Segment::numeric(), alphanumeric(), bytes(), kanji() a eci() vytvárajú explicitné segmenty; znak mimo vynúteného režimu vyhodí UnencodableCharacterException s jeho pozíciou.

## Kapacita (dátové kódové slová)

| Verzia | L | M | Q | H |
| --- | --- | --- | --- | --- |
| 1 | 19 | 16 | 13 | 9 |
| 6 | 136 | 108 | 76 | 60 |
| 13 | 428 | 334 | 244 | 180 |
| 40 | 2956 | 2334 | 1666 | 1276 |

Verzia 13-M pojme 331 bajtov (limit EPC); verzia 40-L pojme 7089 číslic, 4296 alfanumerických znakov alebo 2953 bajtov.

## QrMatrix

```php
$matrix = Qr::matrix('HELLO WORLD');

$matrix->size();              // modules per side
$matrix->version();           // 1–40
$matrix->errorCorrection();   // ErrorCorrection
$matrix->mask();              // 0–7
$matrix->isDark($x, $y);      // bool
$matrix->row($y);             // one row
$matrix->rows();              // every row
$matrix->darkModuleCount();
$matrix->info();              // EncodingInfo
echo $matrix->toText();       // debug text, not an image format
```

## EncodingInfo

```php
$info = Qr::text('HELLO WORLD')->info();

$info->version;                  // chosen version
$info->errorCorrection;          // final level (after any boost)
$info->errorCorrectionBoosted;   // bool
$info->mask;                     // chosen mask
$info->segments;                 // list<SegmentInfo>: mode, characterCount, bitLength
$info->dataBits;                 // bits used
$info->capacityBits;             // bits available
$info->eciDesignator;            // ?int
$info->maskPenalties;            // 8 values when automatic, [] when forced
```

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/qr-for-laravel.md)
