mirror of
https://github.com/TagStudioDev/TagStudio.git
synced 2026-02-09 03:12:28 +00:00
refactor: remove edge from four_corner_gradient()
This commit is contained in:
@@ -2,21 +2,21 @@
|
||||
# Licensed under the GPL-3.0 License.
|
||||
# Created for TagStudio: https://github.com/CyanVoxel/TagStudio
|
||||
|
||||
from PIL import Image, ImageEnhance, ImageChops
|
||||
from PIL import Image
|
||||
|
||||
|
||||
def four_corner_gradient_background(
|
||||
image: Image.Image, adj_size, mask, hl
|
||||
def four_corner_gradient(
|
||||
image: Image.Image, size: tuple[int, int], mask: Image.Image
|
||||
) -> Image.Image:
|
||||
if image.size != (adj_size, adj_size):
|
||||
if image.size != size:
|
||||
# Old 1 color method.
|
||||
# bg_col = image.copy().resize((1, 1)).getpixel((0,0))
|
||||
# bg = Image.new(mode='RGB',size=(adj_size,adj_size),color=bg_col)
|
||||
# bg = Image.new(mode='RGB',size=size,color=bg_col)
|
||||
# bg.thumbnail((1, 1))
|
||||
# bg = bg.resize((adj_size,adj_size), resample=Image.Resampling.NEAREST)
|
||||
# bg = bg.resize(size, resample=Image.Resampling.NEAREST)
|
||||
|
||||
# Small gradient background. Looks decent, and is only a one-liner.
|
||||
# bg = image.copy().resize((2, 2), resample=Image.Resampling.BILINEAR).resize((adj_size,adj_size),resample=Image.Resampling.BILINEAR)
|
||||
# bg = image.copy().resize((2, 2), resample=Image.Resampling.BILINEAR).resize(size,resample=Image.Resampling.BILINEAR)
|
||||
|
||||
# Four-Corner Gradient Background.
|
||||
# Not exactly a one-liner, but it's (subjectively) really cool.
|
||||
@@ -29,29 +29,31 @@ def four_corner_gradient_background(
|
||||
bg.paste(tr, (1, 0, 2, 2))
|
||||
bg.paste(bl, (0, 1, 2, 2))
|
||||
bg.paste(br, (1, 1, 2, 2))
|
||||
bg = bg.resize((adj_size, adj_size), resample=Image.Resampling.BICUBIC)
|
||||
|
||||
bg = bg.resize(size, resample=Image.Resampling.BICUBIC)
|
||||
bg.paste(
|
||||
image,
|
||||
box=(
|
||||
(adj_size - image.size[0]) // 2,
|
||||
(adj_size - image.size[1]) // 2,
|
||||
(size[0] - image.size[0]) // 2,
|
||||
(size[1] - image.size[1]) // 2,
|
||||
),
|
||||
)
|
||||
|
||||
bg.putalpha(mask)
|
||||
final = bg
|
||||
final = Image.new("RGBA", bg.size, (0, 0, 0, 0))
|
||||
final.paste(bg, mask=mask.getchannel(0))
|
||||
|
||||
# bg.putalpha(mask)
|
||||
# final = bg
|
||||
|
||||
else:
|
||||
image.putalpha(mask)
|
||||
final = image
|
||||
# image.putalpha(mask)
|
||||
# final = image
|
||||
|
||||
final = Image.new("RGBA", size, (0, 0, 0, 0))
|
||||
final.paste(image, mask=mask.getchannel(0))
|
||||
|
||||
if final.mode != "RGBA":
|
||||
final = final.convert("RGBA")
|
||||
|
||||
hl_soft = hl.copy()
|
||||
hl_soft.putalpha(ImageEnhance.Brightness(hl.getchannel(3)).enhance(0.5))
|
||||
final.paste(ImageChops.soft_light(final, hl_soft), mask=hl_soft.getchannel(3))
|
||||
return final
|
||||
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ from src.core.utils.encoding import detect_char_encoding
|
||||
from src.qt.helpers.blender_thumbnailer import blend_thumb
|
||||
from src.qt.helpers.color_overlay import theme_fg_overlay
|
||||
from src.qt.helpers.file_tester import is_readable_video
|
||||
from src.qt.helpers.gradient import four_corner_gradient_background
|
||||
from src.qt.helpers.gradient import four_corner_gradient
|
||||
from src.qt.helpers.text_wrapper import wrap_full_text
|
||||
from src.qt.resource_manager import ResourceManager
|
||||
|
||||
@@ -119,6 +119,7 @@ class ThumbRenderer(QObject):
|
||||
Returns a thumbnail raised edge graphic given a size and pixel ratio.
|
||||
If one is not already cached, then a new one will be rendered.
|
||||
"""
|
||||
logging.info((*size, pixel_ratio))
|
||||
item: tuple[Image.Image, Image.Image] = self.raised_edges.get(
|
||||
(*size, pixel_ratio)
|
||||
)
|
||||
@@ -893,9 +894,7 @@ class ThumbRenderer(QObject):
|
||||
(adj_size, adj_size), pixel_ratio
|
||||
)
|
||||
final = self._apply_edge(
|
||||
four_corner_gradient_background(
|
||||
image, (adj_size, adj_size), mask
|
||||
),
|
||||
four_corner_gradient(image, (adj_size, adj_size), mask),
|
||||
edge,
|
||||
)
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user