Compress the largest PNGs
Following up on discussion on the forum and in my comments in #2 (closed), this merge request compresses 26 of the 30 largest images in the repository using pngquant
. I estimate that it saves 30-35mB of space in total.
All of the largest images turn out to be epilogue splash images (no surprises there).
I do not know if this is the best approach to this problem, but it might help in the very short term. Note that this leaves 26 large binary assets in the repo's history, but that is probably not a huge issue right now.
More technical details are below, for the interested reader.
Details
I generated a list of the largest PNG files in the opponents/
directory by running
$ find opponents -type f -ls | sort -k7 -r | head -n 30 | grep -o "opponents/.*.png" > largest_pngs.txt
I then manually edited this file so that the changes would come as a consistent set of patches to select epilogues and ran pngquant $(<largest_pngs.txt)
to compress all of the files. This utility affixes -fs8
to the file names of each compressed file, so you can check the before/after file size with simple ls
commands.
These are the before and after file sizes for Ryu's ending:
$ ls opponents/ryu/ending-*
-rw-r--r-- 1 user 596K Jun 19 22:17 opponents/ryu/ending-1-fs8.png
-rw-r--r-- 1 user 1.6M Apr 19 23:08 opponents/ryu/ending-1.png
-rw-r--r-- 1 user 589K Jun 19 22:17 opponents/ryu/ending-2-fs8.png
-rw-r--r-- 1 user 1.5M Apr 19 23:08 opponents/ryu/ending-2.png
-rw-r--r-- 1 user 577K Jun 19 22:17 opponents/ryu/ending-3-fs8.png
-rw-r--r-- 1 user 1.5M Apr 19 23:08 opponents/ryu/ending-3.png
-rw-r--r-- 1 user 552K Jun 19 22:17 opponents/ryu/ending-4-fs8.png
-rw-r--r-- 1 user 1.4M Apr 19 23:08 opponents/ryu/ending-4.png
-rw-r--r-- 1 user 447K Jun 19 22:17 opponents/ryu/ending-5-fs8.png
-rw-r--r-- 1 user 1.1M Apr 19 23:08 opponents/ryu/ending-5.png
And for Asuna's ending:
$ ls opponents/asuna/true_sight_*.png
-rw-r--r-- 1 user 431K Jun 19 22:17 opponents/asuna/true_sight_1-fs8.png
-rw-r--r-- 1 user 1.3M Apr 19 23:08 opponents/asuna/true_sight_1.png
-rw-r--r-- 1 user 415K Jun 19 22:17 opponents/asuna/true_sight_2-fs8.png
-rw-r--r-- 1 user 1.4M Apr 19 23:08 opponents/asuna/true_sight_2.png
-rw-r--r-- 1 user 409K Jun 19 22:17 opponents/asuna/true_sight_4-fs8.png
-rw-r--r-- 1 user 1.3M Apr 19 23:08 opponents/asuna/true_sight_4.png
And for BlackRose's endings:
$ ls opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_*.png
-rw-r--r-- 1 user 421K Jun 19 22:17 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_01-fs8.png
-rw-r--r-- 1 user 1.3M Apr 19 23:08 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_01.png
-rw-r--r-- 1 user 440K Jun 19 22:17 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_02-fs8.png
-rw-r--r-- 1 user 1.3M Apr 19 23:08 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_02.png
-rw-r--r-- 1 user 438K Jun 19 22:17 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_03-fs8.png
-rw-r--r-- 1 user 1.3M Apr 19 23:08 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_03.png
-rw-r--r-- 1 user 414K Jun 19 22:17 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_04-fs8.png
-rw-r--r-- 1 user 1.2M Apr 19 23:08 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_04.png
-rw-r--r-- 1 user 433K Jun 19 22:17 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_05-fs8.png
-rw-r--r-- 1 user 1.3M Apr 19 23:08 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_05.png
-rw-r--r-- 1 user 421K Jun 19 22:17 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_06-fs8.png
-rw-r--r-- 1 user 1.3M Apr 19 23:08 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_06.png
-rw-r--r-- 1 user 694K Apr 19 23:08 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_07.png
-rw-r--r-- 1 user 445K Jun 19 22:17 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_08-fs8.png
-rw-r--r-- 1 user 1.3M Apr 19 23:08 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_08.png
-rw-r--r-- 1 user 429K Jun 19 22:17 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_09-fs8.png
-rw-r--r-- 1 user 1.3M Apr 19 23:08 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_09.png
-rw-r--r-- 1 user 419K Jun 19 22:17 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_10-fs8.png
-rw-r--r-- 1 user 1.2M Apr 19 23:08 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_10.png
-rw-r--r-- 1 user 405K Jun 19 22:17 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_11-fs8.png
-rw-r--r-- 1 user 1.2M Apr 19 23:08 opponents/blackrose/BlackRose_epilogue_Jay_Jaysie_11.png
And Streaming-chan's endings:
$ ls opponents/streaming-chan/epilogue-*.png
-rw-r--r-- 1 user 7.5K Apr 19 23:08 opponents/streaming-chan/epilogue-0.png
-rw-r--r-- 1 user 414K Jun 19 22:17 opponents/streaming-chan/epilogue-1-fs8.png
-rw-r--r-- 1 user 1.4M Apr 19 23:08 opponents/streaming-chan/epilogue-1.png
-rw-r--r-- 1 user 416K Jun 19 22:17 opponents/streaming-chan/epilogue-2-fs8.png
-rw-r--r-- 1 user 1.4M Apr 19 23:08 opponents/streaming-chan/epilogue-2.png
-rw-r--r-- 1 user 408K Jun 19 22:17 opponents/streaming-chan/epilogue-3-fs8.png
-rw-r--r-- 1 user 1.4M Apr 19 23:08 opponents/streaming-chan/epilogue-3.png
-rw-r--r-- 1 user 420K Jun 19 22:17 opponents/streaming-chan/epilogue-4-fs8.png
-rw-r--r-- 1 user 1.4M Apr 19 23:08 opponents/streaming-chan/epilogue-4.png
-rw-r--r-- 1 user 398K Jun 19 22:17 opponents/streaming-chan/epilogue-5-fs8.png
-rw-r--r-- 1 user 1.5M Apr 19 23:08 opponents/streaming-chan/epilogue-5.png
-rw-r--r-- 1 user 375K Jun 19 22:17 opponents/streaming-chan/epilogue-6-fs8.png
-rw-r--r-- 1 user 1.2M Apr 19 23:08 opponents/streaming-chan/epilogue-6.png
-rw-r--r-- 1 user 405K Jun 19 22:17 opponents/streaming-chan/epilogue-7-fs8.png
-rw-r--r-- 1 user 1.5M Apr 19 23:08 opponents/streaming-chan/epilogue-7.png
-rw-r--r-- 1 user 403K Jun 19 22:17 opponents/streaming-chan/epilogue-8-fs8.png
-rw-r--r-- 1 user 1.5M Apr 19 23:08 opponents/streaming-chan/epilogue-8.png
A rough back-of-the-envelope calculation on this output leads me to estimate that this saves 30-35mB.