0.0% ≤ diff ≤ 40.0%

24 clusters, 53 submissions

all: cluster #1 (2)

# 6330593221 (2021-04-04 18:47) %diff = 6.61 def embed_text_to_image(text, file_in, file_out): # print(file_in) list_of_img = load_image(file_in) copy_list_of_img = clone_image(list_of_img) num_point = len(copy_list_of_img)*len(copy_list_of_img[0])*3 #row x col x 3 run_num = 0 insert_bit = SPECIAL_BITS+int_to_bits(len(text))+''.join([char_to_bits(i) for i in text]) + SPECIAL_BITS # for i in text: # insert_bit += char_to_bits(i) # insert_bit += SPECIAL_BITS if num_point < 48+8*len(text): return False get_out_here = False for row in range(len(copy_list_of_img)): for col in range(len(copy_list_of_img[0])): for pixel in range(3): # print('run',run_num) # print(len(insert_bit)) if run_num >= len(insert_bit): get_out_here = True break if copy_list_of_img[row][col][pixel]%2 == 0: if insert_bit[run_num:run_num+1] == '1': copy_list_of_img[row][col][pixel] += 1 else: if insert_bit[run_num:run_num+1] == '0': copy_list_of_img[row][col][pixel] -= 1 run_num += 1 if get_out_here: break save_image(copy_list_of_img,file_out) # show_image(file_out) return True # print(list_of_img) # print(num_point) # -------------------------------------------------- def get_embedded_text_from_image(file_in): # print(file_in) list_of_img = load_image(file_in) copy_list_of_img = clone_image(list_of_img) run_test = 0 key_to_process = '' text = 2 for row in range(len(copy_list_of_img)): for col in range(len(copy_list_of_img[0])): for pixel in range(3): if key_to_process[:16] == SPECIAL_BITS[:run_test]: if len(key_to_process) == 32: text = bits_to_int(key_to_process[-16:]) if len(key_to_process) == 48+8*text: out = ''.join([bits_to_char(key_to_process[i + 32:i + 40]) for i in range(0, len(key_to_process[32:-16]), 8)]) if key_to_process[-16:] == SPECIAL_BITS: # show_image(file_in) return out else: key_to_process = '' run_test = 0 if copy_list_of_img[row][col][pixel]%2 == 0: key_to_process += '0' run_test += 1 else: key_to_process += '1' run_test += 1 return '' # --------------------------------------------------# 6330594921 (2021-04-05 22:02) %diff = 6.61 def embed_text_to_image(text, file_in, file_out): img = load_image(file_in) # ลิสต์ซ้อนสามชั้น img1 = clone_image(img) # [[[254, 255, 254], [196, 195, 191], [105, 101, 86],...]]] npoints = len(img1)*len(img1[0])*3 count = 0 bits = SPECIAL_BITS + int_to_bits(len(text)) + ''.join([char_to_bits(ch) for ch in text]) + SPECIAL_BITS if npoints < 48 + 8 * len(text): return False out = False for r in range(len(img1)): for c in range(len(img1[0])): for k in range(3): if count>=len(bits): out = True break if img1[r][c][k]%2 == 0: #ถ้าเป็นคู่ if bits[count:count+1] == '0': pass else: img1[r][c][k] += 1 else: #ถ้าเป็นคี่ if bits[count:count+1] == '1': pass else: img1[r][c][k] -= 1 count +=1 if out: break save_image(img1, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): # แปลงรูปเป็นข้อความ img = load_image(file_in) img1 = clone_image(img) rt = 0; p = ''; txt = 2 for r in range(len(img1)): for c in range(len(img1[0])): for k in range(3): if p[:16] == SPECIAL_BITS[:rt]: if len(p) == 32: txt = bits_to_int(p[-16:]) if len(p) == 48 + 8 * txt: output = ''.join([bits_to_char(p[i + 32:i + 40]) for i in range(0, len(p[32:-16]), 8)]) if p[-16:] == SPECIAL_BITS: return output else: p = ''; rt = 0 if img1[r][c][k]%2 == 0: p += '0'; rt += 1 else: p += '1'; rt += 1 return '' # --------------------------------------------------

all: cluster #2 (2)

# 6330453021 (2021-04-05 23:24) %diff = 9.98 def embed_text_to_image(text, file_in, file_out): st_pic1 = load_image(file_in) st_pic2 = clone_image(st_pic1) code = [char_to_bits(i) for i in text ] Num = int_to_bits(len(code)) fillc = SPECIAL_BITS+Num+''.join(code)+SPECIAL_BITS efillc = [fillc[j] for j in range(0,len(fillc),3)] ch = 0 #------------------------------------------------------- for i in range(len(st_pic1)) : for j in range(len(st_pic1[0])) : for k in range(3) : if ch < len(code) : if st_pic1[i][j][k] %2 == 0 and fillc[ch] == '0' : st_pic2[i][j][k] = st_pic1[i][j][k] ; ch += 1 elif st_pic1[i][j][k] %2 == 0 and fillc[ch] == '1' : st_pic2[i][j][k] +=1 ; ch += 1 elif st_pic1[i][j][k] %2 != 0 and fillc[ch] == '0' : st_pic2[i][j][k] -= 1 ; ch += 1 elif st_pic1[i][j][k] %2 != 0 and fillc[ch] == '1' : st_pic2[i][j][k] = st_pic1[i][j][k] ; ch += 1 else : pass else : pass #------------------------------------------------------- if ch < len(fillc) : return False save_image(st_pic2, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): pic = load_image(file_in) word = '' for e in pic: for k in e: for u in k : word += str(int(u)%2) if word.find(SPECIAL_BITS) == -1 : return '' x = word.find(SPECIAL_BITS) y = [word[j:j+16] for j in range(x,len(word),16)] z = chits_to_int(y[1]) y.remove(SPECIAL_BITS) y.remove(y[0]) word2 = "".join(y) x2 = word2.find(SPECIAL_BITS) y2,END = [word2[i:i+8] for i in range(0,x2,8) ] , [word2[e:e+16] for e in range(x2,len(word2),16)] if SPECIAL_BITS not in END or len(y2) != y: return '' last = ''.join([chits_to_char( e ) for e in y2 ]) return last # --------------------------------------------------# 6330455321 (2021-04-02 00:03) %diff = 9.98 def embed_text_to_image(text, file_in, file_out): img1 = load_image(file_in) img2 = clone_image(img1) code = [char_to_bits(e) for e in text] N = len(code) cN = int_to_bits(N) ecode = SPECIAL_BITS+cN+''.join(code)+SPECIAL_BITS ecode2 = [ecode[e] for e in range(0,len(ecode),3)] b = 0 for i in range(len(img1)) : for j in range(len(img1[0])) : for k in range(3) : if b < len(ecode) : if img1[i][j][k] %2 == 0 and ecode[b] == '0' : img2[i][j][k] = img1[i][j][k] ; b += 1 elif img1[i][j][k] %2 == 0 and ecode[b] == '1' : img2[i][j][k] +=1 ; b += 1 elif img1[i][j][k] %2 != 0 and ecode[b] == '0' : img2[i][j][k] -= 1 ; b += 1 elif img1[i][j][k] %2 != 0 and ecode[b] == '1' : img2[i][j][k] = img1[i][j][k] ; b += 1 else : pass else :pass # print(b) if b < len(ecode) : return False save_image(img2, file_out) # te = load_image(file_out) # if tcheck(te,img2) == False # return False return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): img = load_image(file_in) l = '' for i in img: for e in i: for E in e : l += str(int(E)%2) if l.find(SPECIAL_BITS) == -1 : return '' A = l.find(SPECIAL_BITS) D = [l[i:i+16] for i in range(A,len(l),16) ] N = bits_to_int(D[1]) D.remove(SPECIAL_BITS) D.remove(D[0]) l2 = "".join(D) A2 = l2.find(SPECIAL_BITS) D2 , END = [l2[i:i+8] for i in range(0,A2,8) ] , [l2[e:e+16] for e in range(A2,len(l2),16) ] if SPECIAL_BITS not in END or len(D2) != N: return '' fin = ''.join([bits_to_char( e ) for e in D2 ]) return fin # --------------------------------------------------

all: cluster #3 (2)

# 6330235621 (2021-04-05 19:02) %diff = 18.06 def embed_text_to_image(text, file_in, file_out): bit='' ex='0100111101001011' bit+=ex bit+=int_to_bits(len(text)) for e in text : bit+=char_to_bits(e) bit+=ex s=0 img=load_image(file_in) if len(bit)<=len(img)*len(img[0])*len(img[0][0]) : for r in range(len(img)) : if s<len(bit) : for c in range(len(img[r])) : if s<len(bit) : for i in range(len(img[r][c])) : if s<len(bit) : img[r][c][i]=insert(img[r][c][i],bit[s]) s+=1 else : break else : break else : break x=True else : x=False save_image(img,file_out) return x # -------------------------------------------------- def get_embedded_text_from_image(file_in): img=load_image(file_in) bit='' ex='0100111101001011' for r in range(len(img)) : for c in range(len(img[r])) : for i in range(len(img[r][c])) : bit+=reinsert(img[r][c][i]) if len(bit)>=48 : if bit[:16]==ex : N=bits_to_int(bit[16:32]) if bit[32+8*N:48+8*N]==ex : x=bit[32:32+8*N] else : x='' else : x='' else : x='' a=int(len(x)/8) b='' for e in range(a) : c=x[8*e:8*(e+1)] b+=bits_to_char(c) return b # -------------------------------------------------- def insert(C,b) : if C%2==0 : if b=='0' : x=C elif b=='1' : x=C+1 elif C%2==1 : if b=='0' : x=C-1 elif b=='1' : x=C return x def reinsert(x) : if x%2==0 : y='0' elif x%2==1 : y='1' return y # --------------------------------------------------# 6330350021 (2021-04-05 17:47) %diff = 18.06 def embed_text_to_image(text, file_in, file_out): bits = '' extra = '0100111101001011' bits += extra bits += int_to_bits(len(text)) for ch in text: bits += char_to_bits(ch) bits += extra n = 0 img = load_image(file_in) if len(img)*len(img[0])*len(img[0][0]) >= len(bits): for i in range(len(img)): if n < len(bits): for j in range(len(img[i])): if n < len(bits): for k in range(len(img[i][j])): if n < len(bits): img[i][j][k] = insert_bits(img[i][j][k],bits[n]) n += 1 else: break else: break else: break enough = True else: enough = False save_image(img,file_out) return enough # -------------------------------------------------- def get_embedded_text_from_image(file_in): img = load_image(file_in) bits = '' sentence = '' extra = '0100111101001011' for i in range(len(img)): for j in range(len(img[i])): for k in range(len(img[i][j])): bits += read_char(img[i][j][k]) if len(bits) >= 48: if bits[0:16:] == extra: n = bits_to_int(bits[16:32:]) if bits[32+8*n:48+8*n:] == extra: a = bits[32:32+8*n:] else: a = '' else: a = '' else: a = '' for i in range(int(len(a)/8)): z = a[8*i:8*i+8:] sentence += bits_to_char(z) return sentence # -------------------------------------------------- def insert_bits(original, insert): if original%2 == 0: if insert == '0': a = original else: a = original+1 else: if insert == '0': a = original-1 else: a = original return a def read_char(original): if original%2 == 0: a = '0' else: a = '1' return a # --------------------------------------------------

all: cluster #4 (2)

# 6330568621 (2021-04-04 20:40) %diff = 19.08 def embed_text_to_image(text, file_in, file_out): old_img = load_image(file_in) if 48+len(text)*8>bits_of_img(old_img): #Need a bigger picture return False else: new_img = clone_image(old_img) len_bits = int_to_bits(len(text)) text_bits = "" for letter in text: text_bits+=char_to_bits(letter) answer = SPECIAL_BITS+len_bits+text_bits+SPECIAL_BITS convert_img(new_img,answer) save_image(new_img,file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): img = load_image(file_in) ans = "" if get_N_bits(img,16)==SPECIAL_BITS: #found starting special bits (embedded code) len_word_bits=get_N_bits(img,32)[16:] len_word=bits_to_int(len_word_bits) if get_N_bits(img,48+8*len_word)[-16:]==SPECIAL_BITS: #found ending special bits for i in range(len_word): start=32+i*8 ans+=bits_to_char(get_N_bits(img,48+8*len_word)[start:start+8]) return ans # -------------------------------------------------- def bits_of_img(img): count=0 for a in img: for b in a: for c in b: count+=1 return count def convert_img(img,bits): count=0 for i in range(len(img)): for j in range(len(img[i])): for k in range(len(img[i][j])): if count>=len(bits): #dont edit more than needed return if img[i][j][k]%2==0 and bits[count]=='1': img[i][j][k]+=1 elif img[i][j][k]%2!=0 and bits[count]=='0': img[i][j][k]-=1 count+=1 # -------------------------------------------------- def get_N_bits(img,N): ans="" n=0 for a in img: for b in a: for c in b: if n>=N: return ans if c%2==0: ans+="0" else: ans+="1" n+=1 return ans# 6330577221 (2021-04-04 16:48) %diff = 19.08 def embed_text_to_image(text, file_in, file_out): img_in=load_image(file_in) if 8*len(text)+48>count_bit(img_in): return False img_out=clone_image(img_in) bit_len=int_to_bits(len(text)) bit_text='' for ch in text: bit_text+=char_to_bits(ch) bit=SPECIAL_BITS+bit_len+bit_text+SPECIAL_BITS embed_bit(img_out,bit) save_image(img_out,file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): img=load_image(file_in) word='' if check_bit(img,16)==SPECIAL_BITS: len_word_bits=check_bit(img,32)[16:] len_word=bits_to_int(len_word_bits) if check_bit(img,48+len_word*8)[32+len_word*8:]==SPECIAL_BITS: for i in range(len_word): word_bits=check_bit(img,32+(i+1)*8)[32+i*8:] word+=bits_to_char(word_bits) return word # -------------------------------------------------- def count_bit(img): n=0 for i in img: for j in i: for k in j: n+=1 return n def embed_bit(img,bit): i=0 for e in range(len(img)): for j in range(len(img[e])): for c in range(len(img[e][j])): if i>=len(bit): return img if img[e][j][c]%2==0: if bit[i]=='1': img[e][j][c]+=1 else: if bit[i]=='0': img[e][j][c]-=1 i+=1 return img # -------------------------------------------------- def check_bit(img, N): bit='' n=0 for i in img: for j in i: for k in j: if n>=N: return bit if k%2==0: bit+='0' n+=1 else: bit+='1' n+=1 return bit

all: cluster #5 (2)

# 6330199721 (2021-04-05 22:11) %diff = 22.99 def embed_text_to_image(text, file_in, file_out): a = '' b = 0 img = clone_image(load_image(file_in)) no = int_to_bits(len(text)) for e in text: a += char_to_bits(e) z = SPECIAL_BITS+no+a+SPECIAL_BITS if 3*len(img)*len(img[0]) < len(z): return False else: for row in range(len(img)): for col in range(len(img[row])): for i in range(3): if img[row][col][i]%2 == 0: if z[b] == '0': b += 1 else: img[row][col][i] += 1 b += 1 elif z[b] == '0': img[row][col][i] -= 1 b += 1 else: b += 1 if b == len(z): break if b == len(z): break save_image(img, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): a = '' b = '' c = '' img = clone_image(load_image(file_in)) for row in img: for col in row: for i in col: if int(i)%2 == 0: b += '0' else: b += '1' if b[:16] == SPECIAL_BITS: z = bits_to_int(b[16:32]) if b[32+z*8:48+z*8] == SPECIAL_BITS: c += b[32:32+z*8] for i in range(len(c)//8): a += bits_to_char(c[8*i:8*i+8]) return a # --------------------------------------------------# 6330205821 (2021-04-04 18:30) %diff = 22.99 def embed_text_to_image(text, file_in, file_out): txt = '' ans = '' im = load_image(file_in) img = clone_image(im) no = int_to_bits(len(text)) for e in text: txt += char_to_bits(e) tt = SPECIAL_BITS+no+txt+SPECIAL_BITS if 3*len(img)*len(img[0]) < len(tt): return False else: k =0 for row in range(len(img)): for co in range(len(img[row])): for c in range(3): if img[row][co][c]%2 == 0: if tt[k] == '0': k+=1 elif tt[k] =='1': img[row][co][c] += 1 k+=1 else: if tt[k] == '0': img[row][co][c] -= 1 k+=1 elif tt[k] =='1': k+=1 if k == len(tt): break if k == len(tt): break if k == len(tt): break save_image(img, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): ans = '' bit = '' imbit = '' im = load_image(file_in) img = clone_image(im) for row in img: for co in row: for i in co: if int(i)%2 == 0: bit += '0' else: bit += '1' if bit[:16] != SPECIAL_BITS: return '' else: no = bits_to_int(bit[16:32]) if bit[32+no*8:48+no*8] != SPECIAL_BITS: return '' else: imbit += bit[32:32+no*8] for x in range(len(imbit)//8): ans += bits_to_char(imbit[8*x:8*x+8]) return ans # --------------------------------------------------

all: cluster #6 (3)

# 6330234021 (2021-04-05 16:17) %diff = 25.82 def embed_text_to_image(text, file_in, file_out): x = load_image(file_in) clone_x = clone_image(x) textbit = SPECIAL_BITS textbit += int_to_bits(len(text)) c = len(clone_x)*len(clone_x[0])*len(clone_x[0][0]) h = 0 h1 = False for i in text: textbit += char_to_bits(i) textbit += SPECIAL_BITS if c < len(textbit): return False else: for p in range(len(clone_x)): for l in range(len(clone_x[0])): for k in range(3): h += 1 if textbit[(l*3)+k+(p*len(clone_x[0])*3)] == "0": if clone_x[p][l][k]%2 == 0: clone_x[p][l][k] = clone_x[p][l][k] else: clone_x[p][l][k] = (int(clone_x[p][l][k]) - 1) elif textbit[(l*3)+k+(p*len(clone_x[0])*3)] == "1": if clone_x[p][l][k]%2 == 0: clone_x[p][l][k] = (int(clone_x[p][l][k]) + 1) else: clone_x[p][l][k] = clone_x[p][l][k] if h == len(textbit): h1 = True break if h1:break if h1:break save_image(clone_x, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): file_in = load_image(file_in) bit = '' for i in file_in : for j in i : for k in j : if k%2 == 0 : bit += '0' elif k%2 == 1 : bit += '1' for i in range(len(bit)) : if bit[i:i+16] == SPECIAL_BITS : n = bits_to_int(bit[i+16:i+32]) bit1 = bit[i+32:i+32+(8*n)] bit1_1 = '' if bit[i+32+(8*n):i+32+16+(8*n)] == SPECIAL_BITS : for j in range(0,len(bit1),8): bit1_1 += bits_to_char(bit1[j:j+8]) return bit1_1 else : bit = '' return bit # --------------------------------------------------# 6330236221 (2021-04-03 22:54) %diff = 25.82 def embed_text_to_image(text, file_in, file_out): a = load_image(file_in) clone_a = clone_image(a) textbit = SPECIAL_BITS textbit += int_to_bits(len(text)) c = len(clone_a)*len(clone_a[0])*len(clone_a[0][0]) h = 0 h1 = False for i in text: textbit += char_to_bits(i) textbit += SPECIAL_BITS if c < len(textbit): return False else: for p in range(len(clone_a)): for l in range(len(clone_a[0])): for k in range(3): h += 1 if textbit[(l*3)+k+(p*len(clone_a[0])*3)] == "0": if clone_a[p][l][k]%2 == 0: clone_a[p][l][k] = clone_a[p][l][k] else: clone_a[p][l][k] = (int(clone_a[p][l][k]) - 1) elif textbit[(l*3)+k+(p*len(clone_a[0])*3)] == "1": if clone_a[p][l][k]%2 == 0: clone_a[p][l][k] = (int(clone_a[p][l][k]) + 1) else: clone_a[p][l][k] = clone_a[p][l][k] if h == len(textbit): h1 = True break if h1:break if h1:break save_image(clone_a, file_out) return True def get_embedded_text_from_image(file_in): a = load_image(file_in) s = [] c = "" p = 0 c1 = 0 g1 = [] g = [] text = "" for i in a: for k in i: for iny in k: s.append(iny) for i in s: if i%2 == 0: c += "0" else: c += "1" if c[:16] == '0100111101001011': p = c[16:32] p = bits_to_int( c[16:32]) for i in c[32:32 + p*8]: c1 += 1 g.append(i) if c1 == 8: g1.append("".join(g)) g = [] c1 = 0 for i in g1: text += bits_to_char( i ) if c[32 + p*8:48 + p*8] == '0100111101001011': return text else: return '' else: return '' # --------------------------------------------------# 6330285021 (2021-04-05 23:48) %diff = 31.26 def embed_text_to_image(text, file_in, file_out): a = load_image(file_in) tb = SPECIAL_BITS + int_to_bits(len(text)) b = len(a)*len(a[0])*3 m = 0 n = False for i in text: tb = tb + char_to_bits(i) tb = tb + SPECIAL_BITS if b < len(tb): return False else: for i in range(len(a)): for j in range(len(a[0])): for k in range(3): m += 1 if tb[(i*len(a[0])*3) + (j*3) + k] == '0': if a[i][j][k]%2 == 0: a[i][j][k] = a[i][j][k] else: a[i][j][k] = int(a[i][j][k]) - 1 else: if tb[(i*len(a[0])*3) + (j*3) + k] == '1': if a[i][j][k]%2 == 0: a[i][j][k] = int(a[i][j][k]) + 1 else: a[i][j][k] = a[i][j][k] if m == len(tb): n = True break if n == True : break if n == True : break save_image(a, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): a = load_image(file_in) b = [] c = '' d = 0 e = [] c1 = 0 e1 = [] text = '' for i in a: for j in i: for k in range(len(j)): if j[k]%2 == 0 : b.append('0') else : b.append('1') c = ''.join(b) if c[0:16:1] == SPECIAL_BITS: m = bits_to_int( c[16:32:1]) for i in c[32:32+(m*8):1]: c1 += 1 e.append(i) if c1 == 8: e1.append(''.join(e)) c1 = 0 e = [] if e1 == '': return '' for i in e1: text = text + bits_to_char(i) if c[32+(p*8):32+(p*8+16):1] == SPECIAL_BITS: return text else: return '' else: return '' # --------------------------------------------------

all: cluster #7 (2)

# 6330180721 (2021-04-05 22:49) %diff = 29.39 def embed_text_to_image(text, file_in, file_out): if len(text)>65535: return False img = load_image(file_in) img1 = clone_image(img) if 16 + 8*len(text)/3 > len(img)*len(img[0]): return False bit = SPECIAL_BITS + int_to_bits(len(text)) for e in text: bit += char_to_bits(e) bit += SPECIAL_BITS h = len(img[0])*3 for e in range(len(bit)): if img[e//h][(e%h)//3][e%3] % 2 == 0 and bit[e] == '1': img[e//h][(e%h)//3][e%3] = img[e//h][(e%h)//3][e%3] + 1 elif img[e//h][(e%h)//3][e%3] % 2 == 1 and bit[e] == '0': img[e//h][(e%h)//3][e%3] = img[e//h][(e%h)//3][e%3] - 1 save_image(img,file_out) if text == get_embedded_text_from_image(file_out): return True return False # -------------------------------------------------- def get_embedded_text_from_image(file_in): img = load_image(file_in) specialbit = check(0,16,img) if specialbit != SPECIAL_BITS: return '' lenbit = check(16,32,img) bitlen = bits_to_int(lenbit) textbit = check(32,32+8*bitlen,img) bittext = '' for e in range(0,len(textbit),8): bittext += bits_to_char(textbit[e:e+8]) speciallast = check(32+8*bitlen,48+8*bitlen,img) if speciallast != SPECIAL_BITS: return '' return bittext # -------------------------------------------------- def check(a,b,img1): text = '' h = len(img1[0])*3 for i in range(a,b): if img1[i//h][(i%h)//3][i%3] %2 == 0: text += '0' else: text += '1' return text # --------------------------------------------------# 6330572021 (2021-04-05 11:18) %diff = 29.39 def embed_text_to_image(text, file_in, file_out): img_file=load_image(file_in) new_img=clone_image(img_file) l=len(text) if len(img_file)*len(img_file[0])<16+(8*l)/3: return False new_bit=SPECIAL_BITS+int_to_bits(l) for c in text: new_bit+=char_to_bits(c) new_bit+=SPECIAL_BITS r=len(img_file)*3 for i in range(len(new_bit)): if img_file[i//r][(i%r)//3][(i%r)%3]%2==0: if new_bit[i]=='1': new_img[i//r][(i%r)//3][(i%r)%3]=img_file[i//r][(i%r)//3][(i%r)%3]+1 elif img_file[i//r][(i%r)//3][(i%r)%3]%2!=0: if new_bit[i]=='0': new_img[i//r][(i%r)//3][(i%r)%3]=img_file[i//r][(i%r)//3][(i%r)%3]-1 save_image(new_img,file_out) if text==get_embedded_text_from_image(file_out): return True return False # -------------------------------------------------- def get_embedded_text_from_image(file_in): img_file=load_image(file_in) text='' startcode=c_to_b(img_file,0,16) if startcode!=SPECIAL_BITS: return text n=c_to_b(img_file,16,32) len_bit=bits_to_int(n) code=c_to_b(img_file,32,32+len_bit*8) for i in range(0,len(code),8): text+=bits_to_char(code[i:i+8]) endcode=c_to_b(img_file,32+len_bit*8,48+len_bit*8) if endcode!=SPECIAL_BITS: return'' return text # -------------------------------------------------- def c_to_b(img,a,b): r=len(img[0])*3 s='' for i in range(a,b): if img[i//r][(i%r)//3][(i%r)%3]%2==0: s+='0' else: s+='1' return s # --------------------------------------------------

all: cluster #8 (3)

# 6330241321 (2021-04-05 23:54) %diff = 30.75 def embed_text_to_image(text, file_in, file_out): img0 = load_image(file_in) img = clone_image(img0) if len(text) > 65535: return False allbits = 16 + 16 + (len(text) * 8) + 16 rgb = len(img) * len(img[0]) * 3 if rgb < allbits : return False txt = "" for c in text: txt += char_to_bits(c) bits = int_to_bits(len(text)) alltext = SPECIAL_BITS + bits + txt + SPECIAL_BITS bitscount = 0 a = 0 b = 0 c = 0 for i in range(len(img)) : for j in range(len(img[i])) : for k in range(3) : if a < 16 : if img[i][j][k] % 2 == 0 : if alltext[a] == "0" : img[i][j][k] = img[i][j][k] - 1 else : if alltext[a] == "1" : img[i][j][k] = img[i][j][k] + 1 a = a + 1 else : if bitscount < 16 : if img[i][j][k] % 2 == 0 : if bits[bitscount] == "0" : img[i][j][k] = img[i][j][k] - 1 else : if bits[bitscount] == "1" : img[i][j][k] = img[i][j][k] + 1 bitcount = bitscount + 1 else : if b < len(txt) : if img[i][j][k] % 2 == 0 : if txt[b] == "0" : img[i][j][k] = img[i][j][k] - 1 else : if txt[b] == "1" : img[i][j][k] = img[i][j][k] + 1 b = b + 1 else : if c < 16 : if img[i][j][k] % 2 == 0 : if SPECIAL_BITS[c] == "0" : img[i][j][k] = img[i][j][k] - 1 else : if SPECIAL_BITS[c] == "1" : img[i][j][k] = img[i][j][k] + 1 c = c + 1 save_image(img, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): inputImg = load_image(file_in) extrabits = "" a = 0 numch = "" b = 0 cha = "" c = 0 extrabits2 = "" d = 0 for i in inputImg : for j in i : for k in j : if a < 16 : if k % 2 == 0 : extrabits += "0" else : extrabits += "1" a = a+1 else : if b < 16 : if k % 2 == 0 : numch += "0" else : numch += "1" b = b+1 else : lenbits = bits_to_int(numch) lench = lenbits*8 if lench > c : if k % 2 == 0 : cha += "0" else : cha += "1" c = c +1 else : if d < 16 : if k % 2 == 0 : extrabits2 += "0" else : extrabits2 += "1" d = d+1 if extrabits != SPECIAL_BITS : return "" if extrabits2 != SPECIAL_BITS : return "" if extrabits == extrabits2 == SPECIAL_BITS : ans = "" bits = 0 c = "" for b in cha : if bits < 8: c = c + b bits = bits + 1 else: ans += bits_to_char(c) bits = 1 c = b if len(c) == 8 : ans += bits_to_char(c) if len(ans) == bits_to_int(numch) : return ans else : return "" else : return "" # --------------------------------------------------# 6330459921 (2021-04-05 16:21) %diff = 30.75 def embed_text_to_image(text, file_in, file_out): T = len(text) if T > 65535 : return False imginput = load_image(file_in) F = 16 + 16 + (len(text) * 8) + 16 D = len(imginput) * len(imginput[0]) * 3 if F > D : return False textbit = "" for c in text : char = char_to_bits(c) textbit = textbit + char bitcount = 0 ch1 = 0 ch2 = 0 ref = int_to_bits(T) refcount = 0 for i in range(len(imginput)) : for j in range(len(imginput[i])) : for k in range(len(imginput[i][j])) : y = imginput[i][j][k] % 2 if ch1 < 16 : sp1 = SPECIAL_BITS[ch1] if y == 0 : if sp1 == "1" : imginput[i][j][k] = imginput[i][j][k] + 1 else: if sp1 == "0" : imginput[i][j][k] = imginput[i][j][k] - 1 ch1 = ch1 + 1 else: if refcount < 16: if y == 0: if ref[refcount] == "1" : imginput[i][j][k] = imginput[i][j][k] + 1 else: if ref[refcount] == "0" : imginput[i][j][k] = imginput[i][j][k] - 1 refcount = refcount + 1 else: if bitcount < len(textbit): if y == 0: if textbit[bitcount] == "1" : imginput[i][j][k] = imginput[i][j][k] + 1 else: if textbit[bitcount] == "0" : imginput[i][j][k] = imginput[i][j][k] - 1 bitcount = bitcount + 1 else: if ch2 < 16: sp2 = SPECIAL_BITS[ch2] if y == 0: if sp2 == "1" : imginput[i][j][k] = imginput[i][j][k] + 1 else: if sp2 == "0" : imginput[i][j][k] = imginput[i][j][k] - 1 ch2 = ch2 + 1 save_image(imginput, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): imginput = load_image(file_in) ch1 = 0 ch2 = 0 check1 = "" check2 = "" refcount = 0 ref = "" textcount = 0 text = "" for i in range(len(imginput)) : for j in range(len(imginput[i])) : for k in range(len(imginput[i][j])) : x = imginput[i][j][k] y = x % 2 if ch1 < 16 : if y == 0 : check1 = check1 + "0" else : check1 = check1 + "1" ch1 = ch1 + 1 else : if refcount < 16 : if y == 0 : ref = ref + "0" else : ref = ref + "1" refcount = refcount + 1 else : bits = bits_to_int(ref) if textcount < (bits * 8) : if y == 0 : text = text + "0" else : text = text + "1" textcount = textcount + 1 else : if ch2 < 16 : if y == 0 : check2 = check2 + "0" else : check2 = check2 + "1" ch2 = ch2 + 1 if (check1 != SPECIAL_BITS) or (check2 != SPECIAL_BITS) : return "" z = len(text) % 8 if z == 0 : r = "" i = 0 d = "" for c in text : if i < 8 : d = d + c i = i + 1 else : r = r + bits_to_char(d) i = 1 d = c r = r + bits_to_char(d) if len(r) == bits_to_int(ref): return r else: return "" else: return "" # --------------------------------------------------# 6330477121 (2021-04-05 22:32) %diff = 37.1 def embed_text_to_image(text, file_in, file_out): if len(text) >= 65534: return False img = load_image(file_in) if (16 + 16 + (len(text) * 8) + 16) > (len(img) * len(img[0]) * 3): return False else: pass Space = '' for c in text: Space += char_to_bits(c) B_Count = 0 Count1 = 0 ref = int_to_bits(len(text)) Count_ref = 0 Count2 = 0 for i in range(len(img)): for j in range(len(img[i])): for k in range(len(img[i][j])): if Count1 < 16: if img[i][j][k] % 2 != 0: if SPECIAL_BITS[Count1] != '0': pass else: img[i][j][k] -= 1 else: if SPECIAL_BITS[Count1] != '1': pass else: img[i][j][k] += 1 Count1 += 1 else: if Count_ref < 16: if img[i][j][k] % 2 != 0: if ref[Count_ref] != '0': pass else: img[i][j][k] -= 1 else: if ref[Count_ref] != '1': pass else: img[i][j][k] += 1 Count_ref += 1 else: if B_Count < len(Space): if img[i][j][k] % 2 == 0: if Space[B_Count] != '1': pass else: img[i][j][k] += 1 else: if Space[B_Count] != '0': pass else: img[i][j][k] -= 1 B_Count += 1 else: if Count2 < 16: if img[i][j][k] % 2 == 0: if SPECIAL_BITS[Count2] != '1': pass else: img[i][j][k] += 1 else: if SPECIAL_BITS[Count2] != '0': pass else: img[i][j][k] -= 1 else: pass Count2 += 1 save_image(img, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): img = load_image(file_in) Count1 = 0 check1 = '' Count_ref = 0 ref = '' Count_text = 0 text = '' Count2 = 0 check2 = '' for i in range(len(img)): for j in range(len(img[i])): for k in range(len(img[i][j])): x = img[i][j][k] if Count1 < 16: if x % 2 != 0: check1 += '1' else: check1 += '0' Count1 += 1 else: if Count_ref < 16: if x % 2 == 0: ref += '0' else: ref += '1' Count_ref += 1 else: lenText = bits_to_int(ref) * 8 if Count_text < lenText: if x % 2 != 0: text += '1' else: text += '0' Count_text += 1 else: if Count2 < 16: if x % 2 != 0: check2 += '1' else: check2 += '0' Count2 += 1 if (check1 != SPECIAL_BITS or check2 != SPECIAL_BITS): return '' if (len(text) % 8 != 0): return '' else: Space = '' i = 0 Check = '' for b in text: if i >= 8: Space += bits_to_char(Check) i = 1 Check = b else: Check += b i += 1 Space += bits_to_char(Check) if len(Space) == bits_to_int(ref): return Space else: return '' # --------------------------------------------------

all: cluster #9 (2)

# 6330375821 (2021-04-05 23:47) %diff = 30.78 def embed_text_to_image(text, file_in, file_out): S = SPECIAL_BITS L = int_to_bits(len(text)) T = ''.join([char_to_bits(char) for char in text]) merge = S+L+T+S img = numpy.array(load_image(file_in)) shape = img.shape img = img.flatten() if len(merge) > len(img): return False for index, bit in enumerate(merge): img[index] = img_ch(img[index], bit) img = img.reshape(shape) save_image(img, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): B = file_in[:file_in.find('_')] + '.png' try: img_b = numpy.array(load_image(B)) img_b = img_b.flatten() except: return '' img_t = numpy.array(load_image(file_in)) img_t = img_t.flatten() img_c = img_t - img_b S = SPECIAL_BITS bit = ''.join([str(img2text(change, bit_b))\ for change, bit_b in zip(img_c, img_b)]) bit = bit[len(S):] bit_T = bit[16:] length_T = bit[:16] length_T = bits_to_int(length_T) text = '' for index in range(0, 8*length_T, 8): start = index end = start+8 char = bits_to_char(bit_T[start:end]) text = text +char return text # -------------------------------------------------- def img_ch(num, bit): bit = int(bit) if num % 2 == 0: if bit == 0: return num else: return num+1 else: if bit == 0: return num-1 else: return num def img2text(change, img_b): change = int(change) if change == 0: if img_b % 2 == 0: return 0 else: return 1 if change == 1: return 1 if change == -1: return 0 return # --------------------------------------------------# 6330492521 (2021-04-05 23:57) %diff = 30.78 def embed_text_to_image(text, file_in, file_out): img = numpy.array(load_image(file_in)) sh = img.shape img = img.flatten() int2bit = int_to_bits(len(text)) txt2bit = ''.join([char_to_bits(c) for c in text]) all_bit = SPECIAL_BITS + int2bit + txt2bit + SPECIAL_BITS if len(all_bit) > len(img): return False embit = enumerate(all_bit) for i, b in embit: img[i] = cvalue(img[i],b) img = img.reshape(sh) save_image(img, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): fileb = file_in[:file_in.find('_')] + '.png' try: imgb = numpy.array(load_image(fileb)) imgb = imgb.flatten() except: return '' img2txt = numpy.array(load_image(file_in)) img2txt = img2txt.flatten() newimg = img2txt - imgb bit = ''.join([str(img2txt(ch, b)) for ch, b in zip(newimg, imgb)]) bit = bit[len(SPECIAL_BITS):] lentxt = bit[:16] btxt = bit[16:] lentxt = bits_to_int(lentxt) txt = '' for i in range(0, 8*lentxt, 8): # Step 8, each char has 8 bits ch = bits_to_char(btxt[i:i+8]) txt += ch return txt # -------------------------------------------------- def cvalue(number, bit): bit = int(bit) if number % 2 != 0: if bit == 0: return number-1 else: return number else: if bit == 0: return number else: return number+1 def img2txt(change, imgb): change = int(change) if change == 0: if imgb % 2 == 0: return 0 else: return 1 if change == 1: return 1 if change == -1: return 0 # --------------------------------------------------

all: cluster #10 (2)

# 6330400821 (2021-04-05 11:10) %diff = 34.19 def embed_text_to_image(text, file_in, file_out): list_of_filein = load_image(file_in) bits_of_text = '' for i in text : text_to_bits = char_to_bits(i) bits_of_text += text_to_bits base2_len = len(bits_of_text)//8 x = "0100111101001011" + int_to_bits(base2_len) + str(bits_of_text) + "0100111101001011" l = 0 ; s = 0 for i in list_of_filein : for e in i : for k in e : s += 1 if s >= len(x) : for i in range(len(list_of_filein)) : for e in range(len(list_of_filein[i])) : for k in range(len(list_of_filein[i][e])) : if l < len(x) : if x[l] == '0' and list_of_filein[i][e][k]%2 != 0 : list_of_filein[i][e][k] -= 1 elif x[l] == '1' and list_of_filein[i][e][k]%2 == 0 : list_of_filein[i][e][k] += 1 l += 1 else : break save_image(list_of_filein,file_out) return True else : return False # -------------------------------------------------- def get_embedded_text_from_image(file_in): list_of_picture = load_image(file_in) potential = '' for i in list_of_picture : for e in i : for k in e : if k % 2 == 0 : potential += "0" elif k % 2 != 0 : potential += "1" s = potential[16:32].find('1') calculating = potential[16+int(s):32] Base_2_len = int(calculating,2) if potential[:16] == potential[32 + (Base_2_len*8): 48 + (Base_2_len*8)] : s = potential[32:32+(Base_2_len*8)] f = '' for i in range(0,len(s),8) : Y = bits_to_char(s[i:i+8]) f += Y return f else : return '' # --------------------------------------------------# 6330489721 (2021-04-05 01:20) %diff = 34.19 def embed_text_to_image(text, file_in, file_out): a = load_image(file_in) b = "" for i in text: b += char_to_bits(i) c = len(text) d = int_to_bits(c) e = "0100111101001011"+d+b+"0100111101001011" f = clone_image(a) k = 0 for i in f: for j in i: k += len(j) if len(e) <= k: for x in range(len(a)): for y in range(len(a[x])): for z in range(len(a[x][y])): for i in range(len(e)): if e[i]=='1' and a[x][y][z]%2==0: a[x][y][z]+=1 elif e[i]=='0' and a[x][y][z]%2==1: a[x][y][z]-=1 e = e[1::] break save_image(a,file_out) return True else: return False # -------------------------------------------------- def get_embedded_text_from_image(file_in): list_image = load_image(file_in) x = "" y = "" for L in list_image: for M in L: for S in M: if S%2 == 0: x += '0' else: x += '1' z = x[16:32] z = bits_to_int(z) w = 8*z v = x[32:w+32] u = "" if x[:16] == '0100111101001011': if x[w+32:w+48] == '0100111101001011': for i in range(z): u += bits_to_char(v[8*i:(8*i)+8]) return u else: return "" else: return "" # --------------------------------------------------

all: cluster #11 (3)

# 6330524021 (2021-04-05 09:43) %diff = 34.38 def embed_text_to_image(text, file_in, file_out): img=load_image(file_in) bit_msg='' for i in text: bit_msg+=char_to_bits(i) bit_len=int_to_bits(len(text)) all_bit='0100111101001011'+bit_len+bit_msg+'0100111101001011' i=0 to_outer=False if len(img)*len(img[0])>=(16+(8*len(text)/3)): for row in range(len(img)): if to_outer:break for point in range(len(img[row])): if to_outer:break for c in range(len(img[row][point])): if i == len(all_bit):to_outer=True;break if img[row][point][c]%2==0: if all_bit[i]=='1':img[row][point][c]+=1 if img[row][point][c]%2==1: if all_bit[i]=='0':img[row][point][c]-=1 i+=1 else: return False save_image(img, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): img=load_image(file_in) allbit='' for row in img: for point in row: for c in point: if c%2==0:allbit+='0' if c%2==1:allbit+='1' if allbit[:16]=='0100111101001011': len_bit = bits_to_int(allbit[16:32])*8 msg='' bit_msg=allbit[32:32+len_bit] for i in range(0,len(bit_msg),8): msg += bits_to_char(bit_msg[i:i+8]) if allbit[32+len_bit:len_bit+16+32]=='0100111101001011': return msg else: return '' else: return '' # --------------------------------------------------# 6330564021 (2021-04-05 20:24) %diff = 34.38 def embed_text_to_image(text, file_in, file_out): img = load_image(file_in) new_img = clone_image(img) bit_s = int_to_bits(len(text)) for c in text: bit_s += char_to_bits(c) bit_s = '0100111101001011' + bit_s + '0100111101001011' if len(new_img)*len(new_img[0])*3 >= len(bit_s): a,f = 0,False for i in range(len(new_img)): for j in range(len(new_img[0])): for k in range(3): if a == len(bit_s): f = True break if new_img[i][j][k]%2 == 0: if bit_s[a] == '1': new_img[i][j][k] += 1 else: if bit_s[a] == '0': new_img[i][j][k] -= 1 a += 1 if f: break save_image(new_img, file_out) return True else: return False # -------------------------------------------------- def get_embedded_text_from_image(file_in): img = load_image(file_in) bit_s = '' for k in img: for c in k: for e in c: if e%2 == 0: bit_s += '0' if e%2 != 0: bit_s += '1' if bit_s[0:16] == '0100111101001011': num_alp = bits_to_int(bit_s[16:32]) if num_alp != 0 or num_alp != '': alp = '' for i in range(num_alp): alp += bits_to_char(bit_s[32 + (8*i):40 + (8*i)]) if bit_s[((num_alp)*8)+32:((num_alp)*8)+48] == '0100111101001011': return alp else: return '' else: return '' else: return '' # --------------------------------------------------# 6330512421 (2021-04-05 20:39) %diff = 37.94 def embed_text_to_image(text, file_in, file_out): file_in = load_image(file_in) bit = "" num = int_to_bits(len(text)) for e in text : bit += char_to_bits(e) bits = "0100111101001011"+num+bit+"0100111101001011" if len(bits) <= len(file_in)*len(file_in[0])*3 : n = 0 for row in file_in : for point in row : for i in range(len(point)) : if n < len(bits) : if point[i]%2 == 0 : if bits[n] == "0" : point[i] += 0 elif bits[n] == "1" : point[i] += 1 else : if bits[n] == "0" : point[i] -= 1 elif bits[n] == "1" : point[i] += 0 n+=1 else : break save_image(file_in,file_out) show_image(file_out) return True else : return False # -------------------------------------------------- def get_embedded_text_from_image(file_in): file = load_image(file_in) bits = "" for row in file : for point in row : for i in range(len(point)) : if point[i]%2 == 0 : bits += "0" else : bits += "1" if bits[:16] == "0100111101001011" : if len(bits[16:32]) == 16 : length = bits_to_int(bits[16:32])*8 if len(bits[32:32+length]) == length : word = "" for i in range(int(length/8)) : word += bits_to_char(bits[32+8*i:40+8*i]) if bits[32+length:32+length+16] == "0100111101001011" : return word else : return "" else : return "" else : return "" else : return "" # --------------------------------------------------

all: cluster #12 (2)

# 6230092021 (2021-04-05 16:44) %diff = 35.74 def embed_text_to_image(text, file_in, file_out): img = load_image(file_in) img_bit = img_to_bit(file_in) ntext = len(text) row = len(img) column = len(img[0]) if row*column < 16 + (8*ntext)/3: return False text_bit = SPECIAL_BITS + int_to_bits(ntext) for i in text: text_bit += char_to_bits(i) text_bit += SPECIAL_BITS runner = 0 bitout = clone_image(img) for i in range(0,row): for j in range(0,column): for k in range(0,3): if runner < len(text_bit): if text_bit[runner] == '0': if bitout[i][j][k] %2 == 1: bitout[i][j][k] = bitout[i][j][k]-1 if text_bit[runner] == '1': if bitout[i][j][k] %2 == 0: bitout[i][j][k] = bitout[i][j][k]+1 runner+=1 else: break save_image(bitout,file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): bit = img_to_bit(file_in) green1 = bit[:16] if green1 != SPECIAL_BITS: return '' else: a = bit.find('0100111101001011',16) if a == -1: return '' else: green2 = bit[a:a+16] bit2 = bit[:a+16] if green1 != green2: return '' pink = img_to_bit(file_in)[16:32] n = bits_to_int(pink) blue = bit2[32:-16] hidden_txt = '' if len(blue) == 8*n: for i in range(n): ch = bits_to_char(blue[8*i:8*(i+1)]) hidden_txt += ch return hidden_txt else: return '' # -------------------------------------------------- def img_to_bit(file_in): bit = '' img = load_image(file_in) for i in img: for j in i: for k in j: if k%2 == 0: bit += '0' else: bit += '1' return bit # --------------------------------------------------# 6330202921 (2021-04-05 23:24) %diff = 35.74 def embed_text_to_image(text, file_in, file_out): img = load_image(file_in) ib = '' for x in img : for y in x : for z in y : if z%2 == 0 : ib += '0' else : ib += '1' ntext = len(text) row = len(img) column = len(img[0]) if row*column < 16 + (8*ntext)/3 : return False tb = generate_text_bit(text) RN = 0 bo = clone_image(img) for a in range(0,row) : for b in range(0,column) : for c in range(0,3) : if RN < len(tb) : if tb[RN] == '0' : if bo[a][b][c] %2 == 1 : bo[a][b][c] = bo[a][b][c]-1 if tb[RN] == '1' : if bo[a][b][c] %2 == 0 : bo[a][b][c] = bo[a][b][c]+1 RN+=1 else : break save_image(bo,file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): img = load_image(file_in) ib = '' for x in img : for y in x : for z in y : if z%2 == 0 : ib += '0' else : ib += '1' g1 = ib[:16] if g1 != SPECIAL_BITS : return '' else : v = ib.find('0100111101001011',16) if v == -1 : return '' else : g2 = ib[v:v+16] bit2 = ib[:v+16] if g1 != g2 : return '' p = ib[16:32] o = bits_to_int(p) BLUE = bit2[32:-16] ht = '' if len(BLUE) == 8*o : for k in range(o): ch = bits_to_char(BLUE[8*k:8*(k+1)]) ht += ch return ht else : return '' # -------------------------------------------------- def generate_text_bit(text): tb = SPECIAL_BITS + int_to_bits(len(text)) for char in text : tb += char_to_bits(char) tb += SPECIAL_BITS return tb # --------------------------------------------------

all: cluster #13 (3)

# 6330203521 (2021-04-02 20:30) %diff = 36.97 def embed_text_to_image(text, file_in, file_out): a = load_image(file_in) b = clone_image(a) text2 = "" for c in text : text2 += char_to_bits(c) text3 = int_to_bits(len(text)) text4 = SPECIAL_BITS+text3+text2+SPECIAL_BITS if len(text4) > len(b)*len(b[0])*3 : return False check = True x = 0 for i in range(len(a)) : for j in range(len(a[i])) : for k in range(len(a[i][j])) : if a[i][j][k]%2 == 0 and int(text4[x]) == 0 : b[i][j][k] = b[i][j][k] elif a[i][j][k]%2 == 0 and int(text4[x]) == 1 : b[i][j][k] = int(b[i][j][k])+1 elif a[i][j][k]%2 != 0 and int(text4[x]) == 0 : b[i][j][k] = int(b[i][j][k])-1 elif a[i][j][k]%2 != 0 and int(text4[x]) == 1 : b[i][j][k] = b[i][j][k] x += 1 if x == len(text4) : check = False break if check == False : break if check == False : break save_image(b,file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): a = load_image(file_in) b = clone_image(a) data = "" num = 0 for i in range(len(b)) : for j in range(len(b[i])): for k in range(len(b[i][j])) : if b[i][j][k]%2 == 0 : data += "0" else : data += "1" if data[0:16] != SPECIAL_BITS : return "" if len(data) <= 16 : return "" num = bits_to_int(data[16:32]) data2 = data[32:32+(8*num)] y = len(data2) ans = "" for x in range(y//8) : ans += bits_to_char(data2[0:8]) data2 = data2[8::] if len(ans) != num : return "" if data[32+(8*num):32+(8*num)+16] != SPECIAL_BITS : return "" return ans # --------------------------------------------------# 6330347221 (2021-04-05 20:37) %diff = 36.97 def embed_text_to_image(text, file_in, file_out): img = load_image(file_in) img1 = clone_image(img) bits_txt = '' for e in text: bits_txt += char_to_bits(e) bits_n_text = int_to_bits(len(text)) all_bits = SPECIAL_BITS + bits_n_text + bits_txt + SPECIAL_BITS b = 0 if len(img1)*len(img1[0]) < 16 + math.ceil((8*len(text))/3): return False else: for i in range(len(img1)): for j in range(len(img1[i])): for k in range(len(img1[i][j])): if img1[i][j][k] % 2 == 0 and all_bits[b] == '0': img1[i][j][k] = even_and_b0(img1[i][j][k]) elif img1[i][j][k] % 2 == 0 and all_bits[b] == '1': img1[i][j][k] = even_and_b1(img1[i][j][k]) elif img1[i][j][k] % 2 == 1 and all_bits[b] == '0': img1[i][j][k] = odd_and_b0(img1[i][j][k]) elif img1[i][j][k] % 2 == 1 and all_bits[b] == '1': img1[i][j][k] = odd_and_b1(img1[i][j][k]) b += 1 if b >= len(all_bits): break if b >= len(all_bits): break if b >= len(all_bits): break save_image(img1, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): img = load_image(file_in) a = '' for i in range(len(img)): for j in range(len(img[i])): for k in range(len(img[i][j])): if img[i][j][k] % 2 == 0: a += '0' else: a += '1' b = '' n = bits_to_int(a[16:32]) if a[:16] == SPECIAL_BITS and a[32+(n*8):48+(n*8)] == SPECIAL_BITS: for i in range(n): b += (bits_to_char(a[32+(i*8):32+((i+1)*8)])) return b # -------------------------------------------------- def even_and_b0(num): num = int(num) return num def even_and_b1(num): num = int(num) num += 1 return num def odd_and_b0(num): num = int(num) num -= 1 return num def odd_and_b1(num): num = int(num) return num # --------------------------------------------------# 6330576621 (2021-04-05 00:20) %diff = 39.81 def embed_text_to_image(text, file_in, file_out): x=int_to_bits(len(text)) img=load_image(file_in) bit="" for i in range(len(text)): bit+=char_to_bits(text[i]) bits="0100111101001011"+x+bit+"0100111101001011" a=0 if len(img)*len(img[0])<16+(len(text)*8/3): return False for j in range(len(img)): for i in range(len(img[0])): for e in range(len(img[0][0])): if img[j][i][e]%2==0 and bits[a]=="0": pass elif img[j][i][e]%2==0 and bits[a]=="1": img[j][i][e]+=1 elif img[j][i][e]%2!=0 and bits[a]=="0": img[j][i][e]-=1 elif img[j][i][e]%2!=0 and bits[a]=="1": pass a+=1 if a==len(bits): break if a==len(bits): break if a==len(bits): break save_image(img, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): img=load_image(file_in) bit="" for j in range(len(img)): for i in range(len(img[0])): for e in range(len(img[0][0])): if img[j][i][e]%2==0: bit+="0" else: bit+="1" find_bit1=bit.find('0100111101001011',0) find_bit2=bit.find('0100111101001011',find_bit1+1) if find_bit2==-1: return "" read=bit[find_bit1+len(SPECIAL_BITS):find_bit2] len_bit=bits_to_int(read[:16]) if len_bit!=len(read[16:])/8: return "" ch="" for i in range(0,len_bit*8,8): ch+=bits_to_char(read[16+i:16+i+8]) return ch # --------------------------------------------------

all: cluster #14 (2)

# 6330245921 (2021-04-05 21:53) %diff = 38.16 def embed_text_to_image(text, file_in, file_out): text_to_bits = '' for i in text: text_to_bits += char_to_bits(i) text_to_bits = '0100111101001011'+ int_to_bits(len(text))+ text_to_bits +'0100111101001011' flattened = [] pic = load_image(file_in) for i in pic: for j in i: for v in j: flattened.append(v) if len(flattened) >= (len(text)*8)+48: for i in range(len(text_to_bits)): if flattened[i] % 2 == 0: if text_to_bits[i] == '0': continue else: flattened[i] += 1 else: if text_to_bits[i] == '0': flattened[i] -= 1 else: continue New_Phaeng = [flattened[i:i+3] for i in range(0,len(flattened), 3)] Nested = [] x = [] c = 0 for i in range(len(pic)): while len(x) != len(pic[0]): x.append(New_Phaeng[c]) c += 1 Nested.append(x) x = [] save_image(Nested,file_out) return True else: return False # -------------------------------------------------- def get_embedded_text_from_image(file_in): flattened = [] for i in load_image(file_in): for j in i: for v in j: flattened.append(v) x = '' for i in flattened: if i % 2 == 0: x += '0' else: x += '1' if x[0:16] == '0100111101001011' and x[32+8*(bits_to_int(x[16:32])):48+8*(bits_to_int(x[16:32]))] == '0100111101001011': text = '' for i in range(32,32+8*(bits_to_int(x[16:32])),8): text += bits_to_char(x[i:i+8]) return text else: return '' # --------------------------------------------------# 6330247121 (2021-04-05 17:54) %diff = 38.16 def embed_text_to_image(text, file_in, file_out): a = '' for i in text: a += char_to_bits(i) a = ('0100111101001011'+int_to_bits(len(text))+a+'0100111101001011') image = load_image(file_in) c = [] for i in image: for j in i : for k in j : c.append(k) if len(c) < len(a) : return False for i in range(len(a)) : if c[i] %2 == 0 and a[i] =='1': c[i] += 1 elif c[i] %2 == 1 and a[i] =='0': c[i] -= 1 out = [] for i in range(0,len(c),3): out.append(c[i:i+3]) out2 = [] for i in range(0,len(image)): out2.append(out[i*len(image[0]):(i+1)*len(image[0])]) save_image(out2,file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): a = [] for i in load_image(file_in): for j in i : for k in j : a.append(k) b = '' for i in a : if i %2 == 0 : b += "0" else : b += "1" d = '' if b[0:16] == SPECIAL_BITS and b[32+((bits_to_int(b[16:32]))*8):48+((bits_to_int(b[16:32]))*8)] == SPECIAL_BITS: for i in range(int(len(b[32:32+((bits_to_int(b[16:32]))*8)])/8)): d += bits_to_char(b[32:32+((bits_to_int(b[16:32]))*8)][i*8:(i+1)*8]) return d else : return '' # --------------------------------------------------

all: cluster #15 (2)

# 6330357521 (2021-04-05 01:36) %diff = 38.47 def embed_text_to_image(text, file_in, file_out): img_rgb_list = load_image(file_in) row_count, col_count = len(img_rgb_list), len(img_rgb_list[0]) limit = 16 + 8*len(text)/3 if limit >= row_count * col_count: return False hidden_bits = SPECIAL_BITS + int_to_bits(len(text)) for char in text: hidden_bits += char_to_bits(char) hidden_bits += SPECIAL_BITS for i, bit in enumerate(hidden_bits): img_rgb_list[i // (3 * row_count)][(i // 3) % row_count][i % 3] = convert_bit(img_rgb_list[i // (3 * row_count)][(i // 3) % row_count][i % 3], bit) save_image(img_rgb_list, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): img_rgb_list = load_image(file_in) hidden_bits = "" flatten_rgb = [c for a in img_rgb_list for b in a for c in b] for code in flatten_rgb: hidden_bits += revert_bit(code) if hidden_bits[:16] == SPECIAL_BITS: hidden_bits = trim(hidden_bits, 16) else: return "" hidden_text = "" hidden_len = bits_to_int(hidden_bits[:16]) hidden_bits = trim(hidden_bits, 16) for _ in range(hidden_len): try: hidden_text += bits_to_char(hidden_bits[:8]) hidden_bits = trim(hidden_bits, 8) except: return "" if hidden_bits[:16] != SPECIAL_BITS: return "" return hidden_text # -------------------------------------------------- def convert_bit(C, bit): if is_even(C): if bit == '1': C = C + 1 else: if bit == '0': C = C - 1 return C def is_even(C): return C % 2 == 0 def revert_bit(C): return '0' if is_even(C) else '1' def trim(text, size): return text[size:] # --------------------------------------------------# 6330558321 (2021-04-05 00:59) %diff = 38.47 def embed_text_to_image(text, file_in, file_out): rgblist = load_image(file_in) nr = len(rgblist) nc = len(rgblist[0]) if len(rgblist) * len(rgblist[0]) < (16 + 8*len(text)/3): return False len_bits = int_to_bits(len(text)) text_bits = "" for c in text: text_bits += char_to_bits(c) hidden_bits = SPECIAL_BITS + len_bits + text_bits + SPECIAL_BITS counter = 0 while hidden_bits: rgblist[counter//(3*nr)][(counter//3)%nr][counter%3] = emb_bit(rgblist[counter//(3*nr)][(counter//3)%nr][counter%3], hidden_bits[0]) counter += 1 hidden_bits = hidden_bits[1:] save_image(rgblist, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): rgblist = load_image(file_in) bitlist = "" for r in rgblist: for c in r: for code in c: bitlist += dec_bit(code) if bitlist.startswith(SPECIAL_BITS): bitlist = bitlist[16:] else: return "" hidden_text = "" len_text = bits_to_int(bitlist[:16]) bitlist = bitlist[16:] for _ in range(len_text): try: hidden_text += bits_to_char(bitlist[:8]) bitlist = bitlist[8:] except: return "" if bitlist.startswith(SPECIAL_BITS): bitlist = bitlist[16:] else: return "" return hidden_text # -------------------------------------------------- def emb_bit(C, b): if C % 2: if b == '1': return C if b == '0': return C - 1 else: if b == '1': return C + 1 if b == '0': return C def dec_bit(C): if C % 2: return '1' else: return '0' # --------------------------------------------------

all: cluster #16 (2)

# 6330186521 (2021-04-04 23:54) %diff = 38.74 def embed_text_to_image(text, file_in, file_out): if len(text) > 65535: return False enco = SPECIAL_BITS enco += int_to_bits(len(text)) for ch in text: enco += char_to_bits(ch) enco += SPECIAL_BITS img = load_image(file_in) clone = clone_image(img) if (len(img) * len(img[0]) * len(img[0][0])) < len(enco): return False n=0 for i in range(len(img)): for j in range(len(img[i])): for k in range(len(img[i][j])): if img[i][j][k]%2 == 0 and enco[(len(img))*3*i+3*j+k] == '1': img[i][j][k] = img[i][j][k]+1 elif img[i][j][k]%2 == 1 and enco[len(img)*3*i+3*j+k] == '0': img[i][j][k] = img[i][j][k] -1 n+=1 if n == len(enco): break if n == len(enco): break if n == len(enco): break save_image(img, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): img = load_image(file_in) text = '' for i in range(len(img)): for j in range(len(img[i])): for k in range(len(img[i][j])): if img[i][j][k]%2 == 0: text += '0' elif img[i][j][k]%2 ==1: text += '1' if text[:16] != SPECIAL_BITS: return '' lent = bits_to_int(text[16:32]) emb ='' for i in range(32,32+8*lent,8): emb+= bits_to_char(text[i:i+8]) if text[32+8*lent:48+8*lent] != SPECIAL_BITS: return '' if len(emb) != lent: return '' return emb # --------------------------------------------------# 6330389621 (2021-04-03 23:34) %diff = 38.74 def embed_text_to_image(text, file_in, file_out): bits_to_embedded = "" bits_to_embedded += SPECIAL_BITS bits_to_embedded += int_to_bits(len(text)) for i in text: bits_to_embedded += char_to_bits(i) bits_to_embedded += SPECIAL_BITS image_to_bits = load_image(file_in) dot_of_picture = len(image_to_bits)*len(image_to_bits[0]) if dot_of_picture < len(bits_to_embedded)/3 : return False; ii = 0 for i in range(len(image_to_bits)): for j in range(len(image_to_bits[0])): for k in range(len(image_to_bits[0][0])): if image_to_bits[i][j][k]%2 == 0: if int(bits_to_embedded[ii]) == 1: image_to_bits[i][j][k] += 1 ii += 1 else : if int(bits_to_embedded[ii]) == 0: image_to_bits[i][j][k] -= 1 ii += 1 if ii == len(bits_to_embedded): break if ii == len(bits_to_embedded): break if ii == len(bits_to_embedded): break save_image(image_to_bits,file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): bits_from_image = "" text_from_image = "" image_to_bits = load_image(file_in) for i in range(len(image_to_bits)) : for j in range(len(image_to_bits[0])): for k in range(len(image_to_bits[0][0])): bits_from_image += str(image_to_bits[i][j][k]%2) bitsformat = True if bits_from_image[:16] != SPECIAL_BITS: bitsformat = False number_of_char = bits_to_int(bits_from_image[16:32]) if bits_from_image[32+number_of_char*8:48+number_of_char*8] != SPECIAL_BITS: bitsformat = False if bitsformat == False: return text_from_image bits_from_image = bits_from_image[32:32+number_of_char*8] for i in range(0,len(bits_from_image),8): text_from_image += bits_to_char(bits_from_image[i:i+8]) return text_from_image # --------------------------------------------------

all: cluster #17 (2)

# 6330541621 (2021-04-05 20:18) %diff = 39.19 def embed_text_to_image(text, file_in, file_out): global SPECIAL_BITS txtbit = '' for i in text: txtbit += char_to_bits(str(i)) long = int_to_bits(len(text)) txtbit = SPECIAL_BITS+long+txtbit+SPECIAL_BITS c1 = load_image(file_in) c11 = clone_image(c1) if len(txtbit) > len(c11): return False for i in range(len(txtbit)): k = c11[i//(len(c11[0]*3))][i//3-(i//(len(c11[0]*3)))*len(c11[0])][i%3] if k%2 == 0: if txtbit[i] == '0': continue else: c11[i//(len(c11[0]*3))][i//3-(i//(len(c11[0]*3)))*len(c11[0])][i%3] += 1 else: if txtbit[i] == '0': c11[i//(len(c11[0]*3))][i//3-(i//(len(c11[0]*3)))*len(c11[0])][i%3] -= 1 else: continue save_image(c11,file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): global SPECIAL_BITS c1 = load_image(file_in) c11 = clone_image(c1) c2 = '' for i in range(len(c11)): for j in range(len(c11[i])): for k in range(len(c11[i][j])): if int(c11[i][j][k])%2 == 0: c2 += '0' else: c2 += '1' c3 = '' if c2[0:16] == SPECIAL_BITS: c3 += str(bits_to_int(c2[16:32])) if len(c3) == 0: c5 = '' elif len(c3) != 0: n = int(c3) if c2[32+(n*8):(32+(n*8))+16] != SPECIAL_BITS: c5 = '' else: c4 = '' for i in range(n): for j in c2[32:32+(n*8)]: c4 += j[i:(i+1)] c5 = '' for i in range(len(c4)): if i%8 == 0: c5 += bits_to_char(c4[i:i+8]) else: pass return c5 # --------------------------------------------------# 6330545121 (2021-04-05 03:58) %diff = 39.19 def embed_text_to_image(text, file_in, file_out): a = '' global SPECIAL_BITS img = load_image(file_in) img1 = clone_image(img) for i in text: a += char_to_bits(str(i)) y = int_to_bits( len(text)) a = SPECIAL_BITS + y + a + SPECIAL_BITS if len(a) > len(img1)*len(img1[0]): return False for i in range(len(a)): x= img1[i//(len(img[0]*3))][i//3 - (i//(len(img[0]*3)))*len(img[0])][i%3] if x %2 == 0: if a[i] == '0': continue else: img1[i//(len(img[0]*3))][i//3 - (i//(len(img[0]*3)))*len(img[0])][i%3] += 1 else: if a[i] == '0': img1[i//(len(img[0]*3))][i//3 - (i//(len(img[0]*3)))*len(img[0])][i%3] -=1 else: continue save_image(img1, file_out) return True def get_embedded_text_from_image(file_in): global SPECIAL_BITS img = load_image(file_in) code,txt = '','' for i in range(len(img)): a= img[i//(len(img[0]*3))][i//3 - (i//(len(img[0]*3)))*len(img[0])][i%3] if a%2 == 0: code+= '0' else: code += '1' if code[0:16] == SPECIAL_BITS: Num = bits_to_int(code[16:32]) if Num == 0 or type(Num) != int: return '' for i in range(Num): txt += bits_to_char(code[16+16 + (8*i): 16 + 16 + 8 + (8*i)]) if code[((Num)*8)+16+16:((Num)*8)+16+16+16] == SPECIAL_BITS: return txt else: return '' else: return '' # --------------------------------------------------

all: cluster #18 (2)

# 6330293021 (2021-04-05 23:02) %diff = 39.26 def embed_text_to_image(text, file_in, file_out): Hi = load_image(file_in) Bye = clone_image(Hi) x = int_to_bits(len(text)) #สีชมพู y = '' for e in text : y += char_to_bits(e) #เปลี่ยน char เปนเลขฐาน2 z = SPECIAL_BITS+x+y+SPECIAL_BITS #ตัวเลขเวรยาวๆ TAhelp = [] a = len(Bye) b = len(Bye[0]) c = len(Bye[0][0]) for e in Bye : for f in e : for g in f : TAhelp.append(g) for i in range(len(z)) : if TAhelp[i]%2 == 0 : if z[i] == '1' : TAhelp[i] += 1 else : pass elif TAhelp[i]%2 != 0 : if z[i] == '0' : TAhelp[i] -= 1 else : pass TAgengmak = [ [] for i in range(a) ] xx = 0 for j in range(a) : for k in range(b) : TAgengmak[j].append(TAhelp[xx*c:(xx*c)+c]) xx += 1 save_image(TAgengmak, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): sleeplessness = '' Hi = load_image(file_in) for e in Hi : for f in e : for g in f : g = g%2 sleeplessness += str(g) wannasleep = sleeplessness.split(SPECIAL_BITS) if len(wannasleep) == 1 : return '' lovebed = SPECIAL_BITS+wannasleep[1]+SPECIAL_BITS #01001111010010110000000000000100010000010100001001000010010000010100111101001011 lazy = bits_to_int(lovebed[16:32]) #0000000000000100->4 tired = lovebed[32:-16] #01000001010000100100001001000001 insane =[] for i in range(len(tired)//8) : insane.append(tired[8*i:8*(i+1)]) #['01000001','01000010','001000010','01000001'] damn = [] for e in insane : #'A B B A' crazy = bits_to_char(e) damn.append(crazy) rest = ''.join(damn) return rest # --------------------------------------------------# 6330395321 (2021-04-05 21:48) %diff = 39.26 def embed_text_to_image(text, file_in, file_out): alpha = "" lobt = "" op = load_image(file_in) cl = clone_image(op) coding = int_to_bits(len(text)) for e in text : alpha += char_to_bits(e) toon = SPECIAL_BITS + coding + alpha + SPECIAL_BITS for e in cl: for b in e: for d in b: btwo = d%2 lobt += str(btwo) if len(toon) >= len(lobt): return False i = 0 for e in range(len(cl)): for h in range(len(cl[0])): for w in range(3): if i == len(toon): break else: if cl[e][h][w]%2 != int(toon[i]): if cl[e][h][w]%2 == 0: cl[e][h][w] = cl[e][h][w] + 1 i += 1 else: cl[e][h][w] = cl[e][h][w] - 1 i += 1 else: i += 1 save_image(cl,file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): listofbasetwo = "" st = load_image(file_in) for e in st: for a in e : for t in a: basetwo = t%2 listofbasetwo += str(basetwo) if listofbasetwo[:16] != SPECIAL_BITS: return "" if listofbasetwo[16:].find(SPECIAL_BITS) == -1: return "" arrange = listofbasetwo.split(SPECIAL_BITS) code = SPECIAL_BITS + str(arrange[1]) + SPECIAL_BITS tran = bits_to_int(code[16:32]) order = code[32:-16] new = [] for i in range(len(order)//8): new.append(order[8*i:8*(i+1)]) fin = [] for e in new: deal = bits_to_char(e) fin.append(deal) finish = ''.join(fin) return finish # --------------------------------------------------

all: cluster #19 (2)

# 6330248821 (2021-04-05 21:12) %diff = 39.3 def embed_text_to_image(text, file_in, file_out): img = load_image(file_in) img2 = clone_image(img) encoded_text = SPECIAL_BITS len_text = len(text) encoded_text+=str(int_to_bits(len_text)) for char in text: encoded_text+=str(char_to_bits(char)) encoded_text +=SPECIAL_BITS n = 0 for i in range(len(img)): if n == len(encoded_text): break for j in range(len(img[i])): if n == len(encoded_text): break for k in range(len(img[i][j])): if n == len(encoded_text): break C = img[i][j][k] b = int(encoded_text[n]) img2[i][j][k] = embed_bit(C,b) n+=1 save_image(img2, file_out) return 1 # -------------------------------------------------- def get_embedded_text_from_image(file_in): img = load_image(file_in) list_b = [] for i in range(len(img)): for j in range(len(img[i])): for k in range(len(img[i][j])): C = img[i][j][k] b = read_bit((C)) list_b.append(b) text_bit = "" for bit in list_b: text_bit += str(bit) message = get_message(text_bit) if message == -1: return "" else: return message # -------------------------------------------------- def embed_bit(C, b): if C%2: C_new = C-1+b else: C_new = C+b return C_new def read_bit(C): if C%2: return 1 else: return 0 def get_message(text): index = text.find(SPECIAL_BITS) if index == -1: return -1 else: end_index = text.find(SPECIAL_BITS, len(SPECIAL_BITS)) if end_index == -1: return -1 endcode_text = text[len(SPECIAL_BITS):end_index] len_code = bits_to_int(endcode_text[:16]) char_encoded_text = endcode_text[16:] if len_code != len(char_encoded_text)/8: return -1 decoded_text = "" for i in range(len_code): decoded_text += bits_to_char(char_encoded_text[i*8:(i+1)*8]) return decoded_text # --------------------------------------------------# 6330474221 (2021-04-05 21:16) %diff = 39.3 def embed_text_to_image(text, file_in, file_out): img = load_image(file_in) encoded_message = "" len_text = len(text) encoded_message+=str(int_to_bits(len_text)) for char in text: encoded_message+=str(char_to_bits(char)) encoded_text = SPECIAL_BITS+encoded_message+SPECIAL_BITS img2 = embed_message(img,encoded_text) save_image(img2, file_out) return 1 # -------------------------------------------------- def get_embedded_text_from_image(file_in): img = load_image(file_in) list_b = [] for i in range(len(img)): for j in range(len(img[i])): for k in range(len(img[i][j])): C = img[i][j][k] b = decode_b((C)) list_b.append(str(b)) text_b = "" for b in list_b: text_b += b message_bit = get_encode_text(text_b) if message_bit == -1: return "" else: message = get_decode_text(message_bit) return message # -------------------------------------------------- def embed_message(img,encoded_text): n = 0 img2 = clone_image(img) for i in range(len(img)): for j in range(len(img[i])): for k in range(len(img[i][j])): C = img[i][j][k] b = int(encoded_text[n]) img2[i][j][k] = encode_b(C,b) n+=1 if n == len(encoded_text): return img2 def encode_b(C, b): if C%2: C_new = C-1+b else: C_new = C+b return C_new def decode_b(C): if C%2: return 1 else: return 0 def get_encode_text(text): index = text.find(SPECIAL_BITS) if index == -1: return -1 else: end_index = text.find(SPECIAL_BITS, len(SPECIAL_BITS)) if end_index == -1: return -1 encode_text = text[len(SPECIAL_BITS):end_index] len_code = bits_to_int(encode_text[:16]) char_encoded_text = encode_text[16:] if len_code != len(char_encoded_text)//8: return -1 return char_encoded_text def get_decode_text(encoded_text): len_text = len(encoded_text)//8 decoded_text = "" for i in range(len_text): decoded_text += bits_to_char(encoded_text[i * 8:(i + 1) * 8]) return decoded_text # --------------------------------------------------

all: cluster #20 (3)

# 6330213821 (2021-04-05 20:00) %diff = 39.51 def embed_text_to_image(text, file_in, file_out): imgin=load_image(file_in) imgout=clone_image(imgin) if 16+math.ceil(((8/3)*len(text))) >= (len(imgin)*len(imgin[0])) : return False c=0 x=SPECIAL_BITS x+=int_to_bits(len(text)) for ch in text: x+=char_to_bits(ch) x+=SPECIAL_BITS for i in range(len(imgout)): for j in range(len(imgout[0])): for k in range(3): if c<48+8*len(text): imgout[i][j][k]=change(imgout[i][j][k],int(x[c])) c+=1 else: save_image(imgout,file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): img=load_image(file_in) ans='' read='' tmp='' for i in range(len(img)): for j in range(len(img[0])): for k in range(3): if img[i][j][k]%2==0 : read+='0' else : read+='1' for i in range(len(read)-15): if (read[i:i+16] ==SPECIAL_BITS) : n=bits_to_int(read[i+16:i+32]) if(i+32+n*8+16 <= len(read)): if(read[i+32+n*8:i+32+n*8+16]==SPECIAL_BITS): tmp=read[i+32:i+32+n*8] if tmp=='' : return '' for i in range(0,len(tmp)-7,8) : ans+=bits_to_char(tmp[i:i+8]) return ans # -------------------------------------------------- def change(n,bit): if n%2==0: if bit==1: return n+1 else: return n else: if bit==1: return n else: return n-1 # --------------------------------------------------# 6330391821 (2021-04-05 00:19) %diff = 39.51 def embed_text_to_image(text, file_in, file_out): img0 = load_image(file_in) img1 = clone_image(img0) bits_of_text = text_to_bits(str(text)) int_of_text = int_to_bits(len(text)) x = '0100111101001011'+int_of_text+bits_of_text+'0100111101001011' c = 0 if (8*len(text))+48 > len(img1)*len(img1[0])*len(img1[0][0]): return False else: for i in range(len(img1)): for j in range(len(img1[0])): for colour in range(len(img1[0][0])): if c != len(x): img1[i][j][colour] = C_to_c(img1[i][j][colour],x[c]) c += 1 else: save_image(img1,file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): img0 = load_image(file_in) img1 = clone_image(img0) x = "" for i in range(len(img1)): for j in range(len(img1[0])): for colour in range(len(img1[0][0])): if int(img1[i][j][colour])%2 == 0: x += '0' else: x += '1' z = "" for e in range(len(x)-47): if x[e:e+16:] == '0100111101001011': lenght = bits_to_int(x[e+16:e+32:]) if x[e+32+(lenght*8):e+48+(lenght*8):] == '0100111101001011': for l in range(e+32,e+32+(lenght*8),8): z += bits_to_char(x[l:l+8:]) return z return "" # -------------------------------------------------- def text_to_bits(text): x = "" for i in range(len(text)): x += char_to_bits(str(text[i])) return x # -------------------------------------------------- def C_to_c(C,b): if int(C)%2 == 0 : if int(b)%2 == 0 : return int(C) else: return int(C+1) else: if int(b)%2 == 0 : return int(C-1) else: return int(C)# 6330305921 (2021-04-02 12:15) %diff = 39.81 def embed_text_to_image(text, file_in, file_out): img = load_image(file_in) list = clone_image(img) bits = SPECIAL_BITS bits += int_to_bits(len(text)) for e in text : bits += char_to_bits(e) bits += SPECIAL_BITS x = 0 if len(list)*len(list[0])*3 < len(bits) : return False for i in range(len(list)) : for j in range(len(list[0])) : for k in range(3) : if x < len(bits): list[i][j][k] = hide(list[i][j][k],int(bits[x])) x += 1 else : save_image(list,file_out) return True save_image(list,file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): list = load_image(file_in) bits = '' for i in range(len(list)) : for j in range(len(list[0])) : for e in list[i][j] : if e%2 == 0 : bits += '0' else : bits += '1' if bits[:16] != SPECIAL_BITS : return '' amt = bits_to_int(bits[16:32]) text_bit = bits[32:32+amt*8] if bits[32+amt*8:32+amt*8+16] != SPECIAL_BITS : return '' text = '' for i in range(0,len(text_bit),8) : text += bits_to_char(text_bit[i:i+8]) return text # -------------------------------------------------- def hide(c,b) : if c%2 == 0 : if b == 0 : return c else : return c+1 else : if b == 0 : return c-1 else : return c # --------------------------------------------------

all: cluster #21 (2)

# 6330271121 (2021-04-04 19:54) %diff = 39.56 def embed_text_to_image(text, file_in, file_out): img1 = load_image( file_in ) if (16+8*(len(text))/3)<= len(img1)*len(img1[0]): count = int_to_bits(len(text)) want = '' for ch in text: want += char_to_bits(ch) al = SPECIAL_BITS + count + want + SPECIAL_BITS img2 = clone_image( img1 ) b = 0 T = False for i in range(len(img2)): for j in range(len(img2[0])): for k in range(len(img2[0][0])): if b >= len(al): T = True break elif img1[i][j][k]%2 == 0: if al[b]=='0': img2[i][j][k] = img1[i][j][k] elif al[b]=='1': img2[i][j][k] = img1[i][j][k]+1 else: if al[b]=='0': img2[i][j][k] = img1[i][j][k]-1 elif al[b]=='1': img2[i][j][k] = img1[i][j][k] b += 1 if T: break if T: break save_image(img2, file_out) return True else: return False # -------------------------------------------------- def get_embedded_text_from_image(file_in): img = load_image( file_in ) al = '' for i in range(len(img)): for j in range(len(img[0])): for k in range(len(img[0][0])): if img[i][j][k]%2 == 0: al += '0' else: al += '1' if al[:16:] != SPECIAL_BITS: return '' else: if 0<=bits_to_int(al[16:32:])<=65535: c = bits_to_int(al[16:32:]) want = '' for i in range(32,32+8*c,8): want += bits_to_char(al[i:i+8:]) if al[32+8*c:48+8*c:] == SPECIAL_BITS: return want else: return '' else: return '' # --------------------------------------------------# 6330308821 (2021-04-03 18:23) %diff = 39.56 def embed_text_to_image(text, file_in, file_out): f1 = load_image(file_in) picture_bits = len(f1)*len(f1[0])*3 need_bits = (48+8*len(text)) if need_bits > picture_bits: return False else: len_text_bits = int_to_bits(len(text)) text_bits = "" for ch in text: text_bits += char_to_bits(ch) full_bits = SPECIAL_BITS+len_text_bits+text_bits+SPECIAL_BITS f_copy = clone_image(f1) c = 0 check = False for i in range(len(f_copy)): for j in range(len(f_copy[0])): for k in range(3): if c == len(full_bits): check = True break if f_copy[i][j][k] % 2 == 0 and full_bits[c] == '1': f_copy[i][j][k] += 1 elif f_copy[i][j][k] % 2 == 1 and full_bits[c] == '0': f_copy[i][j][k] -= 1 c += 1 if check: break if check: break save_image(f_copy,file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): f1 = load_image(file_in) full_bits = "" for i in range(len(f1)): for j in range(len(f1[0])): for k in range(3): if f1[i][j][k] % 2 == 0: full_bits += "0" else: full_bits += "1" if full_bits[:16] == SPECIAL_BITS: if len(full_bits) >= 32: len_text = bits_to_int(full_bits[16:32]) if len(full_bits) >= 48+8*len_text: text_bit = full_bits[32:32+8*len_text] if full_bits[32+8*len_text:48+8*len_text] == SPECIAL_BITS: text = "" for i in range(0,len(text_bit),8): text += bits_to_char(text_bit[i:i+8]) return text else: return "" else: return "" else: return "" return "" # --------------------------------------------------

all: cluster #22 (2)

# 6330291721 (2021-04-04 12:08) %diff = 39.72 def embed_text_to_image(text, file_in, file_out): listimg0 = load_image(file_in) listimg1 = clone_image(listimg0) binum = SPECIAL_BITS binum += int_to_bits(len(text)) for char in text: binum += char_to_bits(char) binum += SPECIAL_BITS if len(binum) > len(listimg1[0]*3)*len(listimg1): return False else: c = 0 for i in range(len(listimg1)): for j in range(len(listimg1[0])): for k in range(len(listimg1[0][0])): if c < len(binum): if binum[c] == '0': if listimg1[i][j][k] %2 != 0: listimg1[i][j][k] -= 1 elif binum[c] == '1': if listimg1[i][j][k] %2 == 0: listimg1[i][j][k] += 1 c += 1 save_image(listimg1,file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): listimage = load_image(file_in) binum = '' for row in listimage: for column in row: for bit in column: if bit%2 == 0: binum += '0' else: binum += '1' c = 0 for i in range(len(binum)): if binum[i:i+16:] == SPECIAL_BITS: c += i+16 break if c == 0: return '' char = '' ns = bits_to_int(binum[c:c+16:]) for i in range(ns): char += bits_to_char(binum[c+16+(i*8):c+24+(i*8)]) if binum[c+16+(ns*8):c+32+(8*ns):] == SPECIAL_BITS: return char else: return '' # --------------------------------------------------# 6330292321 (2021-04-05 12:56) %diff = 39.72 def embed_text_to_image(text, file_in, file_out): img = load_image(file_in) bit = SPECIAL_BITS+int_to_bits(len(text)) for char in text : bit += char_to_bits(char) bit += SPECIAL_BITS if (len(img)*len(img[0])*3)<len(bit): return False else: n = 0 img1 = clone_image(img) for i in range(len(img1)): for j in range(len(img[i])): for k in range(len(img[i][j])): if n<len(bit): if img1[i][j][k] % 2 == 0: if bit[n] == '0': pass else : img1[i][j][k] += 1 else : if bit[n] == '0': img1[i][j][k] -= 1 else : pass n+=1 save_image(img1, file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): img = load_image(file_in) l = [] ans = '' for i in img: for j in i : for k in j: l.append(k) for i in l: if i%2 == 0 : ans += '0' else : ans += '1' start = [] for i in range(len(ans)): if ans[i:i+16] == SPECIAL_BITS: start.append(i) if len(start) == 0: return '' if start[0] != 0: return '' try : c1 = bits_to_int(ans[16:32]) except : return '' ans1 = '' if 32+(int(c1)*8) in start: for i in range(32,32+c1*8,8): ans1 += bits_to_char(ans[i:i+8]) return ans1 # --------------------------------------------------

all: cluster #23 (2)

# 6330504421 (2021-04-05 12:56) %diff = 39.86 def embed_text_to_image(text, file_in, file_out): img_real = load_image(file_in) img_fake = clone_image(img_real) count_a = 0 break_ = False b = len(text) a = SPECIAL_BITS a += int_to_bits(b) for i in text: a += char_to_bits(i) a += SPECIAL_BITS c = a[0:32+(b*8)] c += SPECIAL_BITS if len(c) > len(img_real)*len(img_real[0])*3: return False for i in range(len(img_fake)): for e in range(len(img_fake[i])): for y in range(len(img_fake[i][e])): if count_a == len(c): break_ = True break if img_fake[i][e][y] % 2 == 0: if a[count_a] == '1': img_fake[i][e][y] = img_fake[i][e][y]+1 count_a += 1 else: count_a += 1 else : if a[count_a] == '0': img_fake[i][e][y] = img_fake[i][e][y]-1 count_a += 1 else: count_a += 1 if break_ : break if break_ : break save_image(img_fake,file_out) text_check = get_embedded_text_from_image(file_out) if text == text_check: return True else: return False # -------------------------------------------------- def get_embedded_text_from_image(file_in): img = load_image(file_in) a = '' b = 0 for i in img: for e in i: for y in e: if y%2 == 1: a += '1' else: a += '0' if a[0:16] != SPECIAL_BITS: return '' b += bits_to_int(a[16:32]) if b == 0: return '' N = b*8 c = a[32:32+N] d = '' e = '' for i in c: d += i if len(d) == 8: e += bits_to_char(d) d = '' if a[32+N:48+N] != SPECIAL_BITS: return '' return e # --------------------------------------------------# 6330560521 (2021-04-05 12:56) %diff = 39.86 def embed_text_to_image(text, file_in, file_out): img = load_image(file_in) img1 = clone_image(img) bits = SPECIAL_BITS bits += int_to_bits(len(text)) for e in text : bits += char_to_bits(e) bits += SPECIAL_BITS n = 0 found = False if len(bits) <= len(img1)*len(img1[0])*3: for x in range(len(img1)): for y in range(len(img1[0])) : for z in range(3): i = img1[x][y][z] if i%2 == 0 : if bits[n]=='0' : img1[x][y][z] = i if bits[n]=='1' : img1[x][y][z] += 1 if i%2 != 0 : if bits[n]=='0' : img1[x][y][z] -= 1 if bits[n]=='1' : img1[x][y][z] = i n+=1 if n==len(bits)-1: found = True break if found==True: break if found==True: break save_image(img1,file_out) return True else : return False # -------------------------------------------------- def get_embedded_text_from_image(file_in): img = load_image(file_in) bits_txt = '' txt = '' for a in img: for b in a: for e in b: if e%2 == 0 : bits_txt += '0' else : bits_txt += '1' if bits_txt[0:16]==SPECIAL_BITS : n = bits_to_int(bits_txt[16:32]) x = 32+(8*n) b = bits_txt[32:x] for i in range(0,len(b),8): txt += bits_to_char(b[i:i+8]) if bits_txt[x:x+16] != SPECIAL_BITS : txt = '' return txt # --------------------------------------------------

all: cluster #24 (2)

# 6330302021 (2021-04-05 03:21) %diff = 39.89 def embed_text_to_image(text, file_in, file_out): img = load_image(file_in) img1 = clone_image(img) lentextbit = int_to_bits(len(text)) textbit = '' for ch in text: textbit += char_to_bits(ch) allbit = '0100111101001011'+lentextbit+textbit+'0100111101001011' count = 0 endloop = False if len(img)*len(img[0]) >= 16+ (8*len(text)/3): for i in range (len(img)): for l in range (len(img[0])): for color in range (3): if count < len(allbit): img1[i][l][color] = str(hided(img[i][l][color],allbit[count])) else: endloop = True break count += 1 if endloop == True : break if endloop == True: break save_image(img1, file_out) return True else: return False # -------------------------------------------------- def get_embedded_text_from_image(file_in): img = load_image(file_in) bit = '' for i in range (len(img)): for l in range (len(img[0])): for color in range (3): bit += str(b(img[i][l][color])) end = bit.rfind(SPECIAL_BITS) lentextbit = bits_to_int(bit[16:32]) bit1 = bit[32:end] ans = '' if bit[:16] == bit[end:end+16] == '0100111101001011' and int(len(bit1)/8) == int(lentextbit): for e in range (0,len(bit1),8): ans += bits_to_char(bit1[e:e+8]) return ans else: return '' # -------------------------------------------------- def hided(C,b): if C%2 == 0: if b == '0': return C elif b == '1': return C+1 else: if b == '0': return C-1 elif b == '1': return C def b(C): if C%2 == 0: return 0 else: return 1 # --------------------------------------------------# 6330563421 (2021-04-04 23:35) %diff = 39.89 def embed_text_to_image(text, file_in, file_out): pic_bit=load_image(file_in) text_bit=SPECIAL_BITS+int_to_bits(len(text)) for k in text: text_bit+=char_to_bits(k) text_bit+=SPECIAL_BITS test=text_bit if len(text_bit)>len(pic_bit)*len(pic_bit[0])*3: return False b=False for i in range(len(pic_bit)): for j in range(len(pic_bit[0])): for k in range(3): ch=test[0] test=test[1:] pic_bit[i][j][k]=bit_encoder(pic_bit[i][j][k],ch) if test=='': b=True if b: break if b: break if b: break save_image(pic_bit,file_out) return True # -------------------------------------------------- def get_embedded_text_from_image(file_in): pic_bit=load_image(file_in) all_bit='' for i in range(len(pic_bit)): for j in range(len(pic_bit[0])): for k in range(3): all_bit+=bit_decoder(pic_bit[i][j][k]) len_hidden_bit=bits_to_int(all_bit[16:32]) if all_bit[:16]!=SPECIAL_BITS or all_bit[32+len_hidden_bit*8:48+len_hidden_bit*8]!=SPECIAL_BITS: return '' hidden_bit=all_bit[32:32+len_hidden_bit*8] hidden_text='' for l in range(0,len(hidden_bit),8): hidden_text+=bits_to_char(hidden_bit[l:l+8]) return hidden_text # -------------------------------------------------- def bit_encoder(color,bit): if color%2==0: if bit=='0': return color else: return color+1 else: if bit=='0': return color-1 else: return color def bit_decoder(color): if color%2==0: return '0' else: return '1' # --------------------------------------------------