diff --git a/0001-generate_wallpaper_sizes.py-Properly-compress-wallpa.patch b/0001-generate_wallpaper_sizes.py-Properly-compress-wallpa.patch new file mode 100644 index 0000000..fabddad --- /dev/null +++ b/0001-generate_wallpaper_sizes.py-Properly-compress-wallpa.patch @@ -0,0 +1,34 @@ +From 3f1f58950971791b8deaa7fc63187926aa5dd7b9 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Wed, 14 Oct 2020 11:00:33 +0200 +Subject: [PATCH] generate_wallpaper_sizes.py: Properly compress wallpapers + +The current options are quite bad and result in files which are unnessarily +big, even bigger than the original file. The Pillow documentation says: +> Values above 95 should be avoided; 100 disables portions of the JPEG +> compression algorithm, and results in large files with hardly any gain +> in image quality. + +"100" is not a valid value for the subsamping parameter either. + +This change actually enables proper compression with subsampling and also +enables optimization of internal settings. + +Result: From 34MiB down to 12MiB with no noticable difference. +--- + wallpapers/generate_wallpaper_sizes.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/wallpapers/generate_wallpaper_sizes.py b/wallpapers/generate_wallpaper_sizes.py +index b5f997b2..79298c7b 100644 +--- a/wallpapers/generate_wallpaper_sizes.py ++++ b/wallpapers/generate_wallpaper_sizes.py +@@ -43,4 +43,4 @@ for orientation in ('horizontal', 'vertical'): + else: box = None + resized_image = image.resize((width, height), Image.LANCZOS, box) + resized_image.save(base_dir / f'{width}x{height}{extension}', +- quality=100, subsampling=100) ++ quality=90, optimize=True, subsampling=1) +-- +2.25.1 + diff --git a/breeze.changes b/breeze.changes index 39424c5..e958461 100644 --- a/breeze.changes +++ b/breeze.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Oct 14 09:15:43 UTC 2020 - Fabian Vogt + +- Add patch and regenerate wallpapers to significantly reduce the size: + * 0001-generate_wallpaper_sizes.py-Properly-compress-wallpa.patch + ------------------------------------------------------------------- Thu Oct 8 16:55:19 UTC 2020 - Fabian Vogt diff --git a/breeze.spec b/breeze.spec index 96aa10b..6a7db90 100644 --- a/breeze.spec +++ b/breeze.spec @@ -33,12 +33,16 @@ Source: breeze-%{version}.tar.xz Source1: breeze-%{version}.tar.xz.sig Source2: plasma.keyring %endif +# PATCH-FIX-UPSTREAM +Patch1: 0001-generate_wallpaper_sizes.py-Properly-compress-wallpa.patch BuildRequires: cmake >= 2.8.12 BuildRequires: extra-cmake-modules >= 0.0.13 BuildRequires: fdupes BuildRequires: hicolor-icon-theme BuildRequires: kf5-filesystem BuildRequires: pkgconfig +# To regenerate the images for Patch1 +BuildRequires: python3-Pillow # Needed for Plasma/LookAndFeel service type declaration (kde#367923) BuildRequires: plasma-framework BuildRequires: cmake(KDecoration2) >= %{_plasma5_version} @@ -112,9 +116,11 @@ Group: System/Libraries Library containing support code for the Breeze Qt5 style. %prep -%setup -q +%autosetup -p1 %build + # Apply Patch1 + python3 wallpapers/generate_wallpaper_sizes.py %cmake_kf5 -d build -- -DCMAKE_INSTALL_LOCALEDIR=%{_kf5_localedir} %cmake_build