mirror of
https://github.com/Febbweiss/mopidy-touchscreen.git
synced 2026-03-04 22:25:39 +00:00
Background blur
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
|
|
||||||
change_speed = 2
|
change_speed = 2
|
||||||
|
|
||||||
|
|
||||||
@@ -30,12 +31,12 @@ class DynamicBackground:
|
|||||||
if image is not None:
|
if image is not None:
|
||||||
image_size = get_aspect_scale_size(image, self.size)
|
image_size = get_aspect_scale_size(image, self.size)
|
||||||
target = pygame.transform.smoothscale(image, image_size)
|
target = pygame.transform.smoothscale(image, image_size)
|
||||||
target.set_alpha(150)
|
|
||||||
self.image_loaded = True
|
|
||||||
self.surface_image.fill((0, 0, 0))
|
self.surface_image.fill((0, 0, 0))
|
||||||
pos = ((self.size[0] - image_size[0])/2,
|
pos = (int((self.size[0] - image_size[0])/2),
|
||||||
(self.size[1] - image_size[1])/2)
|
(int(self.size[1] - image_size[1])/2))
|
||||||
self.surface_image.blit(target, pos)
|
self.surface_image.blit(blur_surf_times(
|
||||||
|
target, self.size[0]/40, 10), pos)
|
||||||
|
self.image_loaded = True
|
||||||
else:
|
else:
|
||||||
self.image_loaded = False
|
self.image_loaded = False
|
||||||
self.update = True
|
self.update = True
|
||||||
@@ -51,3 +52,24 @@ def get_aspect_scale_size(img, new_size):
|
|||||||
aspect = aspect_y
|
aspect = aspect_y
|
||||||
new_size = (int(aspect*size[0]), int(aspect*size[1]))
|
new_size = (int(aspect*size[0]), int(aspect*size[1]))
|
||||||
return new_size
|
return new_size
|
||||||
|
|
||||||
|
|
||||||
|
def blur_surf_times(surface, amt, times):
|
||||||
|
for i in range(times):
|
||||||
|
surface = blur_surf(surface, amt)
|
||||||
|
return surface
|
||||||
|
|
||||||
|
|
||||||
|
# http://www.akeric.com/blog/?p=720
|
||||||
|
def blur_surf(surface, amt):
|
||||||
|
"""
|
||||||
|
Blur the given surface by the given 'amount'. Only values 1 and greater
|
||||||
|
are valid. Value 1 = no blur.
|
||||||
|
"""
|
||||||
|
|
||||||
|
scale = 1.0/float(amt)
|
||||||
|
surf_size = surface.get_size()
|
||||||
|
scale_size = (int(surf_size[0]*scale), int(surf_size[1]*scale))
|
||||||
|
surf = pygame.transform.smoothscale(surface, scale_size)
|
||||||
|
surf = pygame.transform.smoothscale(surf, surf_size)
|
||||||
|
return surf
|
||||||
|
|||||||
@@ -49,9 +49,9 @@ class ScreenManager():
|
|||||||
|
|
||||||
def init_manager(self, size):
|
def init_manager(self, size):
|
||||||
self.size = size
|
self.size = size
|
||||||
|
self.base_size = self.size[1] / self.resolution_factor
|
||||||
|
|
||||||
self.background = DynamicBackground(self.size)
|
self.background = DynamicBackground(self.size)
|
||||||
self.base_size = self.size[1] / self.resolution_factor
|
|
||||||
font = resource_filename(
|
font = resource_filename(
|
||||||
Requirement.parse("mopidy-touchscreen"),
|
Requirement.parse("mopidy-touchscreen"),
|
||||||
"mopidy_touchscreen/icomoon.ttf")
|
"mopidy_touchscreen/icomoon.ttf")
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ class MainScreen(BaseScreen):
|
|||||||
progress.set_value(track_pos_millis)
|
progress.set_value(track_pos_millis)
|
||||||
self.current_track_pos = new_track_pos
|
self.current_track_pos = new_track_pos
|
||||||
progress.set_text(
|
progress.set_text(
|
||||||
time.strftime('%M:%S', time.gmtime(
|
time.strftime('%M:%S', time.gmtime(
|
||||||
self.current_track_pos)) +
|
self.current_track_pos)) +
|
||||||
"/" + self.track_duration)
|
"/" + self.track_duration)
|
||||||
progress.render(screen)
|
progress.render(screen)
|
||||||
@@ -139,16 +139,16 @@ class MainScreen(BaseScreen):
|
|||||||
|
|
||||||
# Progress
|
# Progress
|
||||||
progress = Progressbar(self.fonts['base'],
|
progress = Progressbar(self.fonts['base'],
|
||||||
time.strftime('%M:%S', time.gmtime(
|
time.strftime('%M:%S', time.gmtime(
|
||||||
0)) + "/" + time.strftime(
|
0)) + "/" + time.strftime(
|
||||||
'%M:%S', time.gmtime(0)),
|
'%M:%S', time.gmtime(0)),
|
||||||
(size_1, self.size[1] - self.base_size * 2),
|
(size_1, self.size[1] - self.base_size * 2),
|
||||||
(
|
(
|
||||||
self.size[0] - size_1 - size_2,
|
self.size[0] - size_1 - size_2,
|
||||||
self.base_size),
|
self.base_size),
|
||||||
track.length, False)
|
track.length, False)
|
||||||
self.touch_text_manager.set_touch_object("time_progress",
|
self.touch_text_manager.set_touch_object("time_progress",
|
||||||
progress)
|
progress)
|
||||||
self.progress_show = True
|
self.progress_show = True
|
||||||
else:
|
else:
|
||||||
self.progress_show = False
|
self.progress_show = False
|
||||||
|
|||||||
Reference in New Issue
Block a user