Skip to content
Snippets Groups Projects
Commit f19ebeee authored by henry's avatar henry Committed by Pier Angelo Vendrame
Browse files

Add purple tor version of the loading APNG.

parent e536c57c
Branches
Tags
1 merge request!1049Bug 42616 (part 2): Rebased onto Firefox 128.0esr release
......@@ -120,6 +120,10 @@
skin/classic/global/icons/security-warning.svg (../../shared/icons/security-warning.svg)
skin/classic/global/icons/settings.svg (../../shared/icons/settings.svg)
skin/classic/global/icons/sort-arrow.svg (../../shared/icons/sort-arrow.svg)
skin/classic/global/icons/tor-light-loading.png (../../shared/icons/tor-light-loading.png)
skin/classic/global/icons/tor-light-loading@2x.png (../../shared/icons/tor-light-loading@2x.png)
skin/classic/global/icons/tor-dark-loading.png (../../shared/icons/tor-dark-loading.png)
skin/classic/global/icons/tor-dark-loading@2x.png (../../shared/icons/tor-dark-loading@2x.png)
skin/classic/global/icons/trending.svg (../../shared/icons/trending.svg)
skin/classic/global/icons/update-icon.svg (../../shared/icons/update-icon.svg)
skin/classic/global/icons/arrow-down-12.svg (../../shared/icons/arrow-down-12.svg)
......
toolkit/themes/shared/icons/tor-dark-loading.png

12.9 KiB

toolkit/themes/shared/icons/tor-dark-loading@2x.png

37.9 KiB

toolkit/themes/shared/icons/tor-light-loading.png

12.4 KiB

toolkit/themes/shared/icons/tor-light-loading@2x.png

36.2 KiB

"""
Script to convert the loading.png and loading@2x.png blue spinners to purple
spinners for Tor Browser, for both the light and dark themes.
"""
import argparse
import colorsys
import os
from PIL import ExifTags, Image, ImageFilter
parser = argparse.ArgumentParser(description="Convert the loading APNG to be purple.")
parser.add_argument("loading_png", help="The loading png to convert")
parser.add_argument(
"--light", required=True, help="The name of the light-theme purple output image"
)
parser.add_argument(
"--dark", required=True, help="The name of the dark-theme purple output image"
)
parsed_args = parser.parse_args()
orig_im = Image.open(parsed_args.loading_png)
def filter_to_light_theme(r, g, b):
h, s, v = colorsys.rgb_to_hsv(r, g, b)
# Convert from HSV 0.58, 1.0, 255 (start of the circle)
# to --purple-60 #8000d7 HSV 0.766, 1.0, 215
h = 0.766
v = v * 215 / 255
return colorsys.hsv_to_rgb(h, s, v)
def filter_to_dark_theme(r, g, b):
h, s, v = colorsys.rgb_to_hsv(r, g, b)
# Convert from HSV 0.58, 1.0, 255 (start of the circle)
# to --purple-30 #c069ff HSV 0.766, 0.59, 255
h = 0.766
s = s * 0.59 / 1.0
return colorsys.hsv_to_rgb(h, s, v)
filt_light = ImageFilter.Color3DLUT.generate(65, filter_to_light_theme)
filt_dark = ImageFilter.Color3DLUT.generate(65, filter_to_dark_theme)
transformed_light = []
transformed_dark = []
duration = orig_im.info["duration"]
# Transform each APNG frame individually.
for frame in range(orig_im.n_frames):
orig_im.seek(frame)
transformed_light.append(orig_im.filter(filt_light))
transformed_dark.append(orig_im.filter(filt_dark))
exif = Image.Exif()
exif[ExifTags.Base.ImageDescription] = f"Generated by {os.path.basename(__file__)}"
transformed_light[0].save(
parsed_args.light,
save_all=True,
append_images=transformed_light[1:],
duration=duration,
exif=exif,
)
transformed_dark[0].save(
parsed_args.dark,
save_all=True,
append_images=transformed_dark[1:],
duration=duration,
exif=exif,
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment