]> git.scottworley.com Git - paperdoorknob/blobdiff - glowfic.py
Uniform icon image size
[paperdoorknob] / glowfic.py
index 0eab425d863dadb8669468af9ebc49a87527f19b..1249663c3a184b2d827fab78c2a004dfe3868f7c 100644 (file)
@@ -81,9 +81,9 @@ def makeChunk(chunk_dom: Tag, image_store: ImageStore) -> Chunk:
                  content)
 
 
-def renderIcon(icon_path: str | None) -> bytes:
-    return b'\\includegraphics{%s}' % icon_path.encode(
-        'UTF-8') if icon_path else b''
+def renderIcon(icon_path: str | None, image_size: float) -> bytes:
+    return b'\\includegraphics[width=%fmm,height=%fmm,keepaspectratio]{%s}' % (
+        image_size, image_size, icon_path.encode('UTF-8')) if icon_path else b''
 
 
 class Layout(ABC):
@@ -104,8 +104,9 @@ class ContentOnlyLayout(Layout):
 
 class BelowIconLayout(Layout):
 
-    def __init__(self, texifier: Texifier) -> None:
+    def __init__(self, texifier: Texifier, image_size: float) -> None:
         self._texifier = texifier
+        self._image_size = image_size
 
     def renderChunk(self, chunk: Chunk) -> bytes:
         icon_width = b'0.25\\textwidth'  # TODO: Make this configurable
@@ -118,7 +119,7 @@ class BelowIconLayout(Layout):
 %s
 ''' % (
             icon_width,
-            renderIcon(chunk.icon),
+            renderIcon(chunk.icon, self._image_size),
             chunk.character.encode('UTF-8') if chunk.character else b'',
             chunk.screen_name.encode('UTF-8') if chunk.screen_name else b'',
             chunk.author.encode('UTF-8') if chunk.author else b'',