From c62e8d404dd179bc5a84794f307120572185e397 Mon Sep 17 00:00:00 2001 From: Scott Worley Date: Wed, 20 Dec 2023 16:14:30 -0800 Subject: [PATCH] Uniform icon image size --- args.py | 6 +++++- glowfic.py | 11 ++++++----- paperdoorknob_test.py | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/args.py b/args.py index 62b9404..e952c45 100644 --- a/args.py +++ b/args.py @@ -44,6 +44,10 @@ See https://faculty.bard.edu/bloch/geometry.pdf for details '--htmlfilters', help='Which HTML filters to use (default: %(default)s)', default=','.join(f[0] for f in HTMLFilters)) + parser.add_argument( + '--image_size', + help='How large the icon images are, in mm', + default=20) parser.add_argument( '--out', help='The filename stem at which to write output ' + @@ -72,6 +76,6 @@ def spec_from_commandline_args() -> Iterator[Spec]: DiskImageStore(args.out + '_images', fetcher), lambda x: ApplyHTMLFilters(args.htmlfilters, x), lambda x: ApplyDOMFilters(args.domfilters, x), - BelowIconLayout(texifier), + BelowIconLayout(texifier, args.image_size), args.geometry, texout) diff --git a/glowfic.py b/glowfic.py index 0eab425..1249663 100644 --- a/glowfic.py +++ b/glowfic.py @@ -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'', diff --git a/paperdoorknob_test.py b/paperdoorknob_test.py index c1f8b60..a0aeb21 100644 --- a/paperdoorknob_test.py +++ b/paperdoorknob_test.py @@ -79,7 +79,7 @@ Pretty sure. FakeImageStore(), lambda x: x, lambda x: ApplyDOMFilters('NoEdit,NoFooter', x), - BelowIconLayout(PandocTexifier('pandoc')), + BelowIconLayout(PandocTexifier('pandoc'), 20), None, out) paperdoorknob.process(spec) -- 2.44.1