https://hrubos.tech/repo/own_qr_code.zip || https://zive.aktuality.sk/clanok/fBOXlQe/stat-vyvija-system-pre-qr-platby-kodom-sa-vsak-da-platit-uz-teraz-ako-na-to/
extends Node2D
var image: Image
var texture: Texture
var abc:String
var bitsarr = [ #Psova*45
[0,1,0,1,0,0,0,0],
[0,1,1,1,0,0,1,1],
[0,1,1,0,1,1,1,1],
[0,1,1,1,0,1,1,0],
[0,1,1,0,0,0,0,1],
[0,0,1,0,1,0,1,0],
[0,0,1,1,0,1,0,0],
[0,0,1,1,0,1,0,1],
]
func cipher_bitsarr(privkey, bitsarr):
var bitsarr2=bitsarr
for i in range(0,6):
if i<3:
var p = bitsarr2[privkey[i][0]+1][privkey[i][1]]
bitsarr2[privkey[i][0]+1][privkey[i][1]]=bitsarr2[privkey[i][0]][privkey[i][1]]
bitsarr2[privkey[i][0]][privkey[i][1]]=p
else:
var p = bitsarr2[privkey[i][0]][privkey[i][1]+1]
bitsarr2[privkey[i][0]][privkey[i][1]+1]=bitsarr2[privkey[i][0]][privkey[i][1]]
bitsarr2[privkey[i][0]][privkey[i][1]]=p
return bitsarr2
func genprivkey():
var rng = RandomNumberGenerator.new()
randomize()
var privkey=[]#privkey coords length must be more than 8/2=4<6
var n=rng.randi_range(0,6)
var keys=[]
while keys.size()!=6:
n=rng.randi_range(0,6)
if n in keys:
keys.remove_at(keys.find(n))
keys.append(n)
for i in range(5):
privkey.append([keys[i],keys[i+1]])
privkey.append([keys[5],keys[0]])
return privkey #cant be repeated coords in qr chessboard
func _draw():
draw_texture(texture, Vector2.ZERO)
func _ready() -> void:
#writeqr(bitsarr)
var pk=genprivkey()
print(pk)
writeqr(cipher_bitsarr(pk,bitsarr))
#for l in range(int("A".to_ascii_buffer()[0]),int("D".to_ascii_buffer()[0])):
#print(abc.chr(l))
func writeqr(bitsarr):
image = Image.create(400, 400, false, Image.FORMAT_RGB8)
image.fill(Color.WHITE)
for i in range(0,8):
for j in range(0,8):
if bitsarr[i][j]==1:
write_square_pos(image,j,i)
texture = ImageTexture.create_from_image(image)
#get_qr(image)
queue_redraw()
func write_square_pos(image,posx, posy):
var a=50
var xp=posx*a
var yp=posy*a
for x in range(xp,xp+a):
for y in range(yp,yp+a):
image.set_pixel(x,y,Color.BLACK)
func get_qr(image):
var a = 25
var qr=[]
var coor=[]
for x in range(0,8):
coor.append([45*(x+1),a])
qr.append(image.get_pixel(45*(x+1),a))
print(qr)
print(coor)


Comments “Ve heard STUBA and StatFin are developing what I had 6 months ago, so open sourcing my solution now for them to help:”