From 69345013360c7beb7d5c8c8625293ec6a7b98913 Mon Sep 17 00:00:00 2001 From: Nick Downing Date: Fri, 19 Jul 2024 05:15:19 -0800 Subject: [PATCH] Simplify /shape/shape_color_to_mono.py so it correctly handles the new processing steps (mono, colour, rounded) but does not handle the old shape_(d)hgr.png anymore, revert shape3.png to the un-enhanced version and add shape4.png as the enhanced version (because enhancing loses the ability to recreate the original source), replace /shape/shape_hgr.png with a new version based on shape1.png for mono (parachute, derrick, part of radar, digits) and shape3.png for colour (others), replace /shape/shape_dhgr.png with a new version based on /shape/shape_hgr.png with the shifted STAR BLAZER text added but losing manually re-coloured shapes --- .gitignore | 1 + shape/Makefile | 6 ++- shape/shape_color_to_mono.py | 43 ++++++++-------- shape/shape_dhgr.png | Bin 24399 -> 19949 bytes shape/shape_hgr.png | Bin 25947 -> 19545 bytes shape/shape_mono_to_mono.py | 94 +++++++++++++++++++++++++++++++++++ 6 files changed, 123 insertions(+), 21 deletions(-) create mode 100755 shape/shape_mono_to_mono.py diff --git a/.gitignore b/.gitignore index 4712116..e830bcc 100644 --- a/.gitignore +++ b/.gitignore @@ -45,6 +45,7 @@ /shape/shape1.png /shape/shape2.png /shape/shape3.png +/shape/shape4.png /shape/shape_data.inc /shape/shape_index.inc /shape/sky_blazer_shape.png diff --git a/shape/Makefile b/shape/Makefile index c199a84..6cdae21 100644 --- a/shape/Makefile +++ b/shape/Makefile @@ -18,6 +18,7 @@ shape0d.png \ shape1.png \ shape2.png \ shape3.png \ +shape4.png \ sky_blazer_shape.png dhgr_pixel_shape_index.inc: pixel.txt dhgr_shape.txt shape0c.png @@ -56,6 +57,9 @@ shape2.png: shape0.png ./shape_mono_to_color.py $< $@ shape3.png: shape2.png + ./shape_round.py $< $@ + +shape4.png: shape2.png ./shape_round.py --enhance $< $@ shape0a.png: shape_hgr.png @@ -120,7 +124,7 @@ pixel_shape_data.inc \ shape_index.inc \ shape_data.inc \ shape0[abcd].png \ -shape[0123].png \ +shape[01234].png \ sky_blazer_shape.png \ Sky\ Blazer\ \(4am\ and\ san\ inc\ crack\).dsk \ Sky\ Blazer\ \(4am\ and\ san\ inc\ crack\).nib diff --git a/shape/shape_color_to_mono.py b/shape/shape_color_to_mono.py index b279495..e9354cd 100755 --- a/shape/shape_color_to_mono.py +++ b/shape/shape_color_to_mono.py @@ -1,5 +1,14 @@ #!/usr/bin/env python3 +# this can be run on any shape file from the pipeline (mono, colour, rounded), +# it auto detects which processing steps have been done and trims extra padding + +# resulting file is normalized for the Apple II: vertical pixels are doubled, +# and if HGR mode, horizontal pixels are doubled and each line is hibit or not + +# it has been tested to restore the original file (undoes colour and rounding), +# but does not restore the original file if it has been rounded with --enhance + import numpy import sys import PIL.Image @@ -81,28 +90,22 @@ for i in range(0x100): continue shape = shape[:ys, :xs] - # temporary, for shape_(d)hgr.png - if (ys & 1) == 1: - shape = shape[1:, :] - ys -= 1 - if (xs & 3) == 0: - assert False - elif (xs & 3) == 1: + # normal file has ys even with pairs of identical lines + # rounded file has ys odd and we will only use the odd lines + if (ys & 1) == 0: + assert numpy.all(shape[::2, :] == shape[1::2, :]) + shape = shape[1::2, :] + ys //= 2 + + # mono file has xs = a multiple of 4 + 1 + # colour file has xs = a multiple of 4 + 3, trim the sides + if (xs & 3) == 1: + pass + elif (xs & 3) == 3: shape = shape[:, 1:-1] xs -= 2 - elif (xs & 3) == 2: - shape = shape[:, 1:-2] - xs -= 3 - - # only look at even lines, they will be duplicated again at the end - shape = shape[::2] - ys >>= 1 - - # remove 2 pixels that were added by shape_colour_to_mono.py decoder - assert xs >= 2 - shape = shape[:, 1:-1] - xs -= 2 - assert (xs & 3) == 1 + else: + assert False # take a single bit from each 4-bit colour value, according to x % 4 shape = ( diff --git a/shape/shape_dhgr.png b/shape/shape_dhgr.png index 0d73f00a4782b518af8c3e03921828a6575668e3..b5147022f1c5e6a08790c56b7082a88257fbb7d4 100644 GIT binary patch literal 19949 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 Q0r<0G>FOmJpYe|TAIk$nH2?qr literal 24399 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

DI8?VZcmXM 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 HP6> 3 + x = j * PITCH_X + y = k * PITCH_Y + bg = 0xa if (j ^ k) & 1 else 5 + image_out[y:y + PITCH_Y, x:x + PITCH_X] = bg + + shape = image_in[y:y + PITCH_Y, x:x + PITCH_X] + xs = shape.shape[1] + while xs: + if numpy.any(shape[:, xs - 1] != bg): + break + xs -= 1 + else: + continue + ys = shape.shape[0] + while ys: + if numpy.any(shape[ys - 1, :] != bg): + break + ys -= 1 + else: + continue + shape = shape[:ys, :xs] + + shape1 = numpy.zeros((ys, xs + 2), numpy.uint8) + shape1[:, 1:-1] = shape + shape = shape1 + xs += 2 + + image_out[y:y + ys, x:x + xs] = shape + +image_out_pil = PIL.Image.new( + 'P', + (image_out.shape[1], image_out.shape[0]), + None +) +image_out_pil.frombytes(image_out.tobytes()) +image_out_pil.putpalette(list(PALETTE.reshape((0x30,)))) +image_out_pil.save(out_png) -- 2.34.1