37 lines
1.0 KiB
GDScript
37 lines
1.0 KiB
GDScript
|
|
# Prints image size + ink bounding box (brightness < 0.75) for each v3 mark.
|
||
|
|
extends SceneTree
|
||
|
|
|
||
|
|
const MARKS := "C:/Users/CAN/tinqs-ltd/docs/conceptart/generated-images/tattoo-marks/"
|
||
|
|
const FILES := [
|
||
|
|
"mark-01-chiefs-mark_arm_v3.png",
|
||
|
|
"mark-10-iron-spine_arm_v3.png",
|
||
|
|
"mark-02-voyagers-current_leg_v3.png",
|
||
|
|
"mark-07-storm-bearer_leg_v3.png",
|
||
|
|
"mark-06-hearth-warmth_back_v3.png",
|
||
|
|
"mark-09-star-eye_chest_v3.png",
|
||
|
|
]
|
||
|
|
|
||
|
|
func _init() -> void:
|
||
|
|
for f in FILES:
|
||
|
|
var img := Image.load_from_file(MARKS + f)
|
||
|
|
img.convert(Image.FORMAT_RGBA8)
|
||
|
|
var w := img.get_width()
|
||
|
|
var h := img.get_height()
|
||
|
|
var minx := w
|
||
|
|
var maxx := -1
|
||
|
|
var miny := h
|
||
|
|
var maxy := -1
|
||
|
|
for y in h:
|
||
|
|
for x in w:
|
||
|
|
var c := img.get_pixel(x, y)
|
||
|
|
if (c.r + c.g + c.b) / 3.0 < 0.75:
|
||
|
|
minx = mini(minx, x)
|
||
|
|
maxx = maxi(maxx, x)
|
||
|
|
miny = mini(miny, y)
|
||
|
|
maxy = maxi(maxy, y)
|
||
|
|
var bw := maxx - minx + 1
|
||
|
|
var bh := maxy - miny + 1
|
||
|
|
print("%s %dx%d bbox x %d..%d y %d..%d (%dx%d, aspect h/w %.2f)" %
|
||
|
|
[f, w, h, minx, maxx, miny, maxy, bw, bh, float(bh) / float(bw)])
|
||
|
|
quit()
|