jpg 33

from PIL import Image

# /
char_set = ""

#
def encode_image(image_path, char_set):
    #
    image = Image.open(image_path)

    #
    width, height = image.size

    #
    encoded_image = ""

    #
    for y in range(height):
        for x in range(width):
            # RGB-
            rgb = image.getpixel((x, y))

            #
            index = (int(rgb[0] / 256 * len(char_set)) + int(rgb[1] / 256 * len(char_set)) * 256 + int(rgb[2] / 256 * len(char_set)) * 256 * 256) % len(char_set)

            #
            char = char_set[index]

            #
            encoded_image += char

    return encoded_image

#
def decode_image(encoded_image, char_set, width, height):
    #
    image = Image.new("RGB", (width, height))

    #
    for i in range(len(encoded_image)):
        #
        index = (i % len(char_set)) % len(char_set)

        # RGB-
        rgb = [int(char_set[index] / len(char_set) * 256), int(char_set[index + len(char_set)] / len(char_set) * 256), int(char_set[index + 2 * len(char_set)] / len(char_set) * 256)]

        # RGB-
        image.putpixel((i % width, i // width), tuple(rgb))

    return image

#
image_path = " .jpg"

#
width, height = Image.open(image_path).size

#
encoded_image = encode_image(image_path, char_set)

#
with open("encoded_image.txt", "w", encoding='utf-8') as f:
    f.write(encoded_image)

print(" 33 .")

#
with open("encoded_image.txt", "r", encoding='utf-8') as f:
    encoded_image = f.read()

decoded_image = decode_image(encoded_image, char_set, width, height)

#
decoded_image.save("decoded_image.png")

print(" .")



     encoded_image.txt

  gpt



33 .

Traceback (most recent call last):
  File "C:\Users\MSI\Desktop\ .py", line 71, in <module>
    decoded_image = decode_image(encoded_image, char_set, width, height)
  File "C:\Users\MSI\Desktop\ .py", line 45, in decode_image
    rgb = [int(char_set[index] / len(char_set) * 256), int(char_set[index + len(char_set)] / len(char_set) * 256), int(char_set[index + 2 * len(char_set)] / len(char_set) * 256)]
TypeError: unsupported operand type(s) for /: 'str' and 'int'



->






...



 -  

  , 2 . , , 2.
, , , 2. encode_image():



#
def encode_image(image_path, char_set):
    #
    image = Image.open(image_path)

    #
    width, height = image.size

    #
    encoded_image = ""

    #
    for y in range(height):
        for x in range(width):
            # RGB-
            rgb = image.getpixel((x, y))

            #
            index = (int(rgb[0] / 256 * len(char_set)) + int(rgb[1] / 256 * len(char_set)) * 256 + int(rgb[2] / 256 * len(char_set)) * 256 * 256) % len(char_set)

            #
            char = char_set[index]

            # , 2
            if len(encoded_image) < 2 or encoded_image[-1] != encoded_image[-2] or encoded_image[-1] != char:
                encoded_image += char
            else:
                # 2 ,
                index += 1
                char = char_set[index % len(char_set)]
                encoded_image += char

    return encoded_image




2 .


- txt






- txt   
jpg




ϩZ"M&Gߐ2`nL\[oik6in#c³%[ x#A^>ݦkL
֟qW7[O ÿҏo
6*0WC21 U/ X:ޘRȤ'en&kՊ>wRBK/ƗhjX7

ю NA9o_orkiȩC} 3ѶnNaM 5-34/9ⴧ wm|uE*JDDn|.QEHF4mZ6[=i3aTX) ?UbP>m/^ڰښO$ٝUF>tY+ f#'R/Y~

...