Add anchor parameter for symbol drawer, so symbol image can be centered.
This commit is contained in:
@@ -45,11 +45,12 @@ class Images ():
|
|||||||
self.images[key] = value
|
self.images[key] = value
|
||||||
|
|
||||||
class SymbolDrawer ():
|
class SymbolDrawer ():
|
||||||
def __init__ (self, size, direction="ltr"):
|
def __init__ (self, size, direction="ltr", anchor="la"):
|
||||||
self.direction = direction
|
self.direction = direction
|
||||||
self.symbols = []
|
self.symbols = []
|
||||||
self.symbol_pos = (0, 0)
|
self.symbol_pos = (0, 0)
|
||||||
self.size = (0, 0)
|
self.size = (0, 0)
|
||||||
|
self.anchor = anchor
|
||||||
|
|
||||||
def add_symbol (self, symbol):
|
def add_symbol (self, symbol):
|
||||||
if isinstance(symbol, str):
|
if isinstance(symbol, str):
|
||||||
@@ -67,6 +68,17 @@ class SymbolDrawer ():
|
|||||||
image = Image.new("RGBA", self.size)
|
image = Image.new("RGBA", self.size)
|
||||||
for symbol in self.symbols:
|
for symbol in self.symbols:
|
||||||
image.paste(symbol[0], symbol[1])
|
image.paste(symbol[0], symbol[1])
|
||||||
|
|
||||||
|
if self.anchor[0] == "m":
|
||||||
|
dest = (dest[0] - int(self.size[0] / 2), dest[1])
|
||||||
|
elif self.anchor[0] == "r":
|
||||||
|
dest = (dest[0] - self.size[0], dest[1])
|
||||||
|
|
||||||
|
if self.anchor[1] == "m":
|
||||||
|
dest = (dest[0], dest[1] - int(self.size[1] / 2))
|
||||||
|
elif self.anchor[1] == "b":
|
||||||
|
dest = (dest[0], dest[1] - self.size[1])
|
||||||
|
|
||||||
target_image.alpha_composite(image, dest)
|
target_image.alpha_composite(image, dest)
|
||||||
|
|
||||||
images = Images(IMAGES_DIRECTORY)
|
images = Images(IMAGES_DIRECTORY)
|
||||||
|
|||||||
Reference in New Issue
Block a user