fixed pillar boxes

This commit is contained in:
Jakub Trllo 2022-03-08 15:22:34 +01:00
parent 404232c37a
commit 70e158792b

View file

@ -993,7 +993,10 @@ class ExtractReview(pyblish.api.InstancePlugin):
line_color_alpha = float(l_alpha) / 255 line_color_alpha = float(l_alpha) / 255
# test ratios and define if pillar or letter boxes # test ratios and define if pillar or letter boxes
output_ratio = output_width / output_height output_ratio = float(output_width) / float(output_height)
self.log.debug("Output ratio: {} LetterBox ratio: {}".format(
output_ratio, ratio
))
pillar = output_ratio > ratio pillar = output_ratio > ratio
need_mask = format(output_ratio, ".3f") != format(ratio, ".3f") need_mask = format(output_ratio, ".3f") != format(ratio, ".3f")
if not need_mask: if not need_mask:
@ -1002,8 +1005,8 @@ class ExtractReview(pyblish.api.InstancePlugin):
if not pillar: if not pillar:
if fill_color_alpha > 0: if fill_color_alpha > 0:
top_box = ( top_box = (
"drawbox=0:0:{width}:round(" "drawbox=0:0:{width}"
"({height}-({width}*(1/{ratio})))/2)" ":round(({height}-({width}/{ratio}))/2)"
":t=fill:c={color}@{alpha}" ":t=fill:c={color}@{alpha}"
).format( ).format(
width=output_width, width=output_width,
@ -1014,11 +1017,11 @@ class ExtractReview(pyblish.api.InstancePlugin):
) )
bottom_box = ( bottom_box = (
"drawbox=0:{height}-round(" "drawbox=0"
"({height}-({width}*(1/{ratio})))/2)" ":{height}-round(({height}-({width}/{ratio}))/2)"
":{width}:round(({height}-({width}" ":{width}"
"*(1/{ratio})))/2):t=fill:" ":round(({height}-({width}/{ratio}))/2)"
"c={color}@{alpha}" ":t=fill:c={color}@{alpha}"
).format( ).format(
width=output_width, width=output_width,
height=output_height, height=output_height,
@ -1030,9 +1033,9 @@ class ExtractReview(pyblish.api.InstancePlugin):
if line_color_alpha > 0 and line_thickness > 0: if line_color_alpha > 0 and line_thickness > 0:
top_line = ( top_line = (
"drawbox=0:round(({height}-({width}" "drawbox=0"
"*(1/{ratio})))/2)-{l_thick}:{width}:{l_thick}:" ":round(({height}-({width}/{ratio}))/2)-{l_thick}"
"t=fill:c={l_color}@{l_alpha}" ":{width}:{l_thick}:t=fill:c={l_color}@{l_alpha}"
).format( ).format(
width=output_width, width=output_width,
height=output_height, height=output_height,
@ -1042,8 +1045,8 @@ class ExtractReview(pyblish.api.InstancePlugin):
l_alpha=line_color_alpha l_alpha=line_color_alpha
) )
bottom_line = ( bottom_line = (
"drawbox=0:{height}-round(({height}-({width}" "drawbox=0"
"*(1/{ratio})))/2)" ":{height}-round(({height}-({width}/{ratio}))/2)"
":{width}:{l_thick}:t=fill:c={l_color}@{l_alpha}" ":{width}:{l_thick}:t=fill:c={l_color}@{l_alpha}"
).format( ).format(
width=output_width, width=output_width,
@ -1058,8 +1061,10 @@ class ExtractReview(pyblish.api.InstancePlugin):
else: else:
if fill_color_alpha > 0: if fill_color_alpha > 0:
left_box = ( left_box = (
"drawbox=0:0:round(({width}-({height}" "drawbox=0:0"
"*{ratio}))/2):{height}:t=fill:c={color}@{alpha}" ":round(({width}-({height}*{ratio}))/2)"
":{height}"
":t=fill:c={color}@{alpha}"
).format( ).format(
width=output_width, width=output_width,
height=output_height, height=output_height,
@ -1069,8 +1074,11 @@ class ExtractReview(pyblish.api.InstancePlugin):
) )
right_box = ( right_box = (
"drawbox={width}-round(({width}-({height}*{ratio}))/2))" "drawbox="
":0:round(({width}-({height}*{ratio}))/2):{height}" "{width}-round(({width}-({height}*{ratio}))/2)"
":0"
":round(({width}-({height}*{ratio}))/2)"
":{height}"
":t=fill:c={color}@{alpha}" ":t=fill:c={color}@{alpha}"
).format( ).format(
width=output_width, width=output_width,
@ -1095,7 +1103,7 @@ class ExtractReview(pyblish.api.InstancePlugin):
) )
right_line = ( right_line = (
"drawbox={width}-round(({width}-({height}*{ratio}))/2))" "drawbox={width}-round(({width}-({height}*{ratio}))/2)"
":0:{l_thick}:{height}:t=fill:c={l_color}@{l_alpha}" ":0:{l_thick}:{height}:t=fill:c={l_color}@{l_alpha}"
).format( ).format(
width=output_width, width=output_width,
@ -1300,7 +1308,6 @@ class ExtractReview(pyblish.api.InstancePlugin):
"scale_factor_by_height: `{}`".format(scale_factor_by_height) "scale_factor_by_height: `{}`".format(scale_factor_by_height)
) )
# scaling none square pixels and 1920 width # scaling none square pixels and 1920 width
if ( if (
input_height != output_height input_height != output_height