Add script to extract thumbnails from prusa gcode
This commit is contained in:
parent
2e9efc1234
commit
60b2e65826
47
scripts/extract_prusa_thumbnails.py
Normal file
47
scripts/extract_prusa_thumbnails.py
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
|
||||||
|
#
|
||||||
|
import re
|
||||||
|
import base64
|
||||||
|
|
||||||
|
dir = "/home/pi/sdcard/"
|
||||||
|
file = "square_tower_0.2mm_PLA_ENDER3_46m.gcode"
|
||||||
|
#f = f.open(file, 'r')
|
||||||
|
|
||||||
|
thumbnails = []
|
||||||
|
cur_thumbnail = {}
|
||||||
|
state = 0
|
||||||
|
with open(dir + file, 'r') as f:
|
||||||
|
for line in f:
|
||||||
|
if state == 0:
|
||||||
|
match = re.match(r'^; thumbnail begin ([0-9]+)x([0-9]+) ([0-9]+)', line)
|
||||||
|
if match:
|
||||||
|
cur_thumbnail = {
|
||||||
|
"width": match.group(1),
|
||||||
|
"height": match.group(2),
|
||||||
|
"size": match.group(3),
|
||||||
|
"data": ""
|
||||||
|
}
|
||||||
|
state = 1
|
||||||
|
continue
|
||||||
|
elif state == 1:
|
||||||
|
if re.match (r'^; thumbnail end', line):
|
||||||
|
state = 0
|
||||||
|
thumbnails.append(cur_thumbnail)
|
||||||
|
continue
|
||||||
|
match = re.match(r'^; (\S+)$', line)
|
||||||
|
if match:
|
||||||
|
cur_thumbnail['data'] += match.group(1)
|
||||||
|
|
||||||
|
if len(thumbnails) > 0:
|
||||||
|
biggest = 0
|
||||||
|
for i in range(len(thumbnails)):
|
||||||
|
if i == 0:
|
||||||
|
continue
|
||||||
|
if thumbnails[i]['width'] > thumbnails[biggest]['width']:
|
||||||
|
biggest = i
|
||||||
|
|
||||||
|
image = base64.decodestring(thumbnails[biggest]['data'])
|
||||||
|
name = file.split('.gcod')[0] + ".png"
|
||||||
|
f = open(dir + name, 'wb')
|
||||||
|
f.write(image)
|
||||||
|
f.close()
|
Loading…
x
Reference in New Issue
Block a user