43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
from math import ceil
|
|
import os
|
|
from PIL import Image
|
|
import glob
|
|
|
|
WIDTH = 256
|
|
OFFSET = 9
|
|
|
|
os.makedirs("dataImg", exist_ok=True)
|
|
|
|
for data_file in glob.glob("data/data*.txt"):
|
|
with open(data_file, "r") as f:
|
|
data = f.read().replace('\n', '')
|
|
|
|
bytes_array = [int(data[i:i+2], 16) for i in range(0, len(data), 2)]
|
|
|
|
HEIGHT = 1 + ceil((len(bytes_array)-OFFSET)/WIDTH)
|
|
IMG_WIDTH = max(WIDTH, OFFSET)
|
|
|
|
def getColor(value):
|
|
return (value, value, value)
|
|
|
|
|
|
img = Image.new("RGB", (IMG_WIDTH, HEIGHT))
|
|
for i in range(0, IMG_WIDTH):
|
|
if i < OFFSET:
|
|
img.putpixel((i, 0), getColor(bytes_array[i]))
|
|
else:
|
|
img.putpixel((i, 0), (255, 0, 255))
|
|
for i in range(1, HEIGHT):
|
|
for j in range(0, IMG_WIDTH):
|
|
if j >= WIDTH:
|
|
img.putpixel((j, i), (255, 0, 255))
|
|
continue
|
|
|
|
idx = OFFSET + (i - 1) * WIDTH + j
|
|
if idx < len(bytes_array):
|
|
img.putpixel((j, i), getColor(bytes_array[idx]))
|
|
else:
|
|
img.putpixel((j, i), (255, 0, 255))
|
|
base = data_file.split('\\')[-1].split('.')[0] # Get base name without extension
|
|
output_file = f"dataImg/{base}.png"
|
|
img.save(output_file) |