
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ QR-ΠΊΠΎΠ΄Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python
ΠΠ°Ρ Π²ΡΡΠ΄Ρ ΠΎΠΊΡΡΠΆΠ°ΡΡ QR-ΠΊΠΎΠ΄Ρ. ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ°ΠΉΡ Π² ΡΠ΅ΠΊΠ»Π°ΠΌΠ΅, ΠΏΠ°ΡΠΎΠ»Ρ ΠΎΡ Wi-Fi ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠ΅Π½Ρ Π² ΠΊΠ°ΡΠ΅. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½ΠΎΠΌΠ΅Ρ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ Π²Π°ΠΊΡΠΈΠ½Π°ΡΠΈΡ, Π±ΡΡΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ. QR-ΠΊΠΎΠ΄Ρ Π½Π° Π΄ΠΎΡΡΠΎΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΡΠ΅Ρ ΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ Π΄Π°ΠΆΠ΅ ΠΌΡΠ·ΡΠΊΡ (ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠΏΠ΅Π½ΠΎΠ²ΡΠΊΠΈΠ΅ Π»Π°Π²ΠΎΡΠΊΠΈ Π² ΠΠ°ΡΡΠ°Π²Π΅), ΡΠ°ΡΡΠΈΡΡΡΡΠΈΠ΅ Π½Π°Ρ ΠΎΠΏΡΡ ΡΡΡΠΈΠ·ΠΌΠ°. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²Π΅ΡΠΈΡΡΡΡ ΡΡΠΎΠΏΠΊΡ ΡΠΊΠΈΠ΄ΠΎΡΠ½ΡΡ ΠΊΠ°ΡΡΠΎΡΠ΅ΠΊ ΠΈ ΡΠΏΡΠΎΡΡΠΈΡΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π² ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ΅.
Π ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ QR-ΠΊΠΎΠ΄Ρ ΠΌΠ°ΡΡΠΎΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΈ ΠΎΠ±ΡΠ°Π·ΡΠΎΠ². Π’Π°ΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΎΡΡΡΠΎ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ. Π ΡΡΠ°ΡΡΡΡ, Π² Python Π΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ qrcode, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΡΠ΅ΠΊΡΡ Π² ΡΠΈΠΌΠΏΠ°ΡΠΈΡΠ½ΡΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΈΠΊΠΈ.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ QR-ΠΊΠΎΠ΄Ρ
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π°, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ qrcode. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Pillow, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΈΠΌ Π²ΡΠ΅ ΡΠ°Π·ΠΎΠΌ:
pip install qrcode[pil]
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ QR-ΠΊΠΎΠ΄. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΡΡΠΌΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
qr "https://okumy.com/" > okumy.png
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ°ΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
Π Python ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ qrcode.make()
:
import qrcode
img = qrcode.make('https://okumy.com/')
type(img) # qrcode.image.pil.PilImage
img.save("okumy.png")
Π ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ QR-ΠΊΠΎΠ΄Ρ Ρ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΠ½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ°. ΠΡΡΠ°Π½Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΠΈΡ Π½Π° Π½Π°ΠΊΠ»Π΅ΠΉΠΊΠ°Ρ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅ΠΌ ΠΊΠΎΠΏΠΈΡΠ΅Π½ΡΡΠ΅. ΠΠΎΠΊΡΠΏΠΈΠ² ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ Ρ Π½ΠΎΠΌΠ΅ΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡ.
import qrcode
def main():
start = int(input('ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ:'))
stop = int(input('ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ:'))
for i in range(start, stop + 1):
value = '#' + str(i).rjust(8, '0')
qrcode.make(value).save(value + '.png')
if __name__ == '__main__':
main()
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅ΡΠΆΠ°ΡΡ Π²ΡΠ΅ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΠ½ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΏΡΡΠΌΠΎ Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°.
ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ QR-ΠΊΠΎΠ΄Ρ
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ qrcode.QRCode
. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
import qrcode
qr = qrcode.QRCode(
version=10,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=15,
border=6,
)
qr.add_data('https://okumy.com/')
qr.make(fit=True)
img = qr.make_image(fill_color=(75, 0, 75), back_color=(190, 190, 255)).save('ok.png')
version
β ΡΠΈΡΠ»ΠΎ ΠΎΡ 1 Π΄ΠΎ 40, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠ΅Π΅ Π·Π° ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎΠ»Ρ QR-ΠΊΠΎΠ΄Π°. ΠΠ΄ΠΈΠ½ΠΈΡΠ° Π·Π°Π΄Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΡΡ 21 Π½Π° 21 ΠΊΠ²Π°Π΄ΡΠ°Ρ. None
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ.
error_correction
β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡ QR-ΠΊΠΎΠ΄Π°, Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΏΡΠΎΡΠ΅Π½Ρ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠ°ΡΡΠΈΡΡΠ΅ΡΡΡ ΠΎΡ 7% (ERROR_CORRECT_L
) Π΄ΠΎ 30% (ERROR_CORRECT_H
), ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - 15%.
box_size
β ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ² Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ
.
border
β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎΠ»ΡΠΈΠ½Ρ Π³ΡΠ°Π½ΠΈΡΡ. ΠΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ 4 (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ).
fill_color
, black_color
β ΡΡΠΎ ΡΠ²Π΅Ρ ΡΠΎΠ½Π° ΠΈ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ². ΠΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΈΡ
ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΡΠΌΠΈ, ΠΈΠ½Π°ΡΠ΅ ΠΊΠ°ΠΌΠ΅ΡΠ° ΡΠ΅Π»Π΅ΡΠΎΠ½Π° Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ QR-ΠΊΠΎΠ΄. ΠΠΎΠΌΠΈΠΌΠΎ ΡΠ΅ΠΊΡΡΠ°, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ RGB-ΠΊΠΎΡΡΠ΅ΠΆΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠ΄ΡΠ»Ρ qrcode ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ QR-ΠΊΠΎΠ΄Ρ Π² Python ΠΈΠ»ΠΈ ΠΏΡΡΠΌΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ°Π·ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ make()
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ QR-ΠΊΠΎΠ΄ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ, Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° QRCode
ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. ΠΡΠΎΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΌΡΡ
ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ
ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΎΡ ΡΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ΅ΠΊΠ»Π°ΠΌΡ Π΄ΠΎ Π³ΡΠ°ΡΡΠΈΡΠΈ.

ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Python Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
Π‘ΡΠ°Π½ΡΡΠ΅ junior Python ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ Π·Π° 7 ΠΌΠ΅ΡΡΡΠ΅Π²
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ
Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ ΠΈΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΠΈ Π² Python
ΠΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΡ β ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΡΠΈΠΏ ΠΈ ΡΡΡΡΠΊΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.