Վերադառնալ
Դիթերինգ QR կոդերում. ինչպես թաքցնել լուսանկար աշխատող կոդի ներսում
SiTech Team2 წთ. საკითხავი

Դիթերինգ QR կոդերում. ինչպես թաքցնել լուսանկար աշխատող կոդի ներսում

Ծրագրավորող Էնդրյու Թեյլորը բացատրում է, թե ինչպես սխալների տարածումը և երկկրկնակ մեթոդը թույլ են տալիս QR կոդին կրել միաբիթ դիմանկար և միաժամանակ սկանավորվել։

QR կոդը կարող է սկանավորվել նույնիսկ ներսում թաքցված լուսանկարով — եթե գիտես, թե ինչպես ծռել կանոնները։ Դիթերինգով QR կոդերի գեներատորի հեղինակ, ծրագրավորող Էնդրյու Թեյլորը հրապարակել է ուղեցույց իր գործիքի տեխնիկայի մասին. այն սովորական կոդերը վերածում է միաբիթ դիմանկարների, իսկ բուն կոդը բաց է Codeberg-ում։

QR կոդի անատոմիան

QR կոդը քառակուսիների ցանց է, որը բաժանվում է երկու մասի. ֆունկցիոնալ նախշերը — ցցուն ձևերը, որոնք սկաներին օգնում են գտնել կոդը և որոշել դրա կողմնորոշումը — և տվյալների մոդուլները, որտեղ պահվում են հաղորդագրությունն ու վերնագրային բայթերը։ Քանի որ մոդուլները կարդացվում են միայն այն բանից հետո, երբ սկաները կպչում է ֆունկցիոնալ նախշերին, դրանք կարելի է փոփոխել — դրա համար են ապրանքանիշերը տպում ինքնատիպ QR կոդեր — սակայն յուրաքանչյուր փոփոխություն մի փոքր նվազեցնում է սկանավորման հուսալիությունը։

Լուսանկարը աղմուկի ներսում

Մի մոտեցում, որը ցուցադրված է Թեյլորի հիշատակած գրառման մեջ (հեղինակ՝ Դեյվ Ռիչեսոն), մոդուլների փոքրացումն է. յուրաքանչյուր պիքսել բաժանվում է 3×3 ցանցի, կոդավորված բիթը պահվում է մեջտեղի վանդակում, իսկ մյուս ութ վանդակները տրվում են լուսանկարին։ Արդյունքում ստացվում է ցածր լուծաչափի միաբիթ պատկեր՝ ծածկված «աղ ու պղպեղ» աղմուկով, որովհետև ինը պիքսելից մեկը միևնույն է տվյալներ է կրում։

Դիթերինգ և սխալի տարածում

Կիսաերանգները սովորաբար ստացվում են դիթերինգով — օրինակ՝ Բայերի նախշով, որը միջանկյալ երանգները ձևացնում է սև ու սպիտակ ձիաստակավոր ֆոնի օգնությամբ։ Սխալի տարածումը գնում է ավելի հեռու. երբ պիքսելը համեմատվում է շեմի հետ, առաջացած սխալը բաշխվում է դեռևս չորոշված հարևան պիքսելների վրա, այնպես որ յուրաքանչյուր հատված միջինում ավելի մոտ է իր իրական պայծառությանը, քան սովորական դիթերինգի դեպքում, իսկ պակաս կանոնավոր հյուսվածքը աչքի համար ավելի հաճելի է։ Թեյլորի օրինակը Միքելանջելոյի «Դավիդի» 147×147 միաբիթ պատկերն է՝ Ֆլոյդ-Շտայնբերգի ալգորիթմով։

Որպեսզի տվյալների մոդուլները չշողան, նա տարածումը կատարում է երկու անգամ։ Առաջին անցումով մոդուլները ստանում են պարտադիր գույները, և առաջացած սխալը տարածվում է շրջակա ութ պիքսելների վրա — մուգ հատվածում սխալը կարող է հասնել 95%-ի, երբ պիքսելը պետք է լինի մաքուր սպիտակ — իսկ երկրորդ անցումը ընթանում է սովորական ձևով։ Ըստ Թեյլորի, հենց այդ առաջին սխալի քողարկումն է պատկերն ընթեռնելի դարձնում։

Գինը՝ սկանավորվելիությունը

Կա փոխզիջում արտաքին տեսքի և հուսալիության միջև։ Կոդը, որը նոթբուքի էկրանից ձեր հեռախոսով սկանավորվում է, կարող է չկարդալ ուրիշի հեռախոսով վատ լույսի տակ տպված թղթից։ Գեներատորը նաև փոքրիկ պատկերներ է ստեղծում առանց լուսանցքի, մինչդեռ սկաներներին անհրաժեշտ է հանգիստ գոտի. բրաուզերները խոշորացված պատկերները մշուշոտում են, եթե CSS-ում image-rendering սահմանված չէ։ Լուսանցքի գույնը պետք է համապատասխանի որոնողական նախշերի ֆոնին — սովորաբար սպիտակ, սակայն շրջված QR կոդերին պետք է սև։

SSiTech

SiTech — AI-ով հզորացված վեբ մշակում

Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։