1.1.0版本

This commit is contained in:
xinzhu.yin
2026-04-16 16:51:05 +08:00
commit c157e774e5
333 changed files with 70759 additions and 0 deletions

View File

@@ -0,0 +1,133 @@
import warnings
from typing import TypeVar, Union
class SolidColorParams:
"""
Special configuration class for configure Solid color pattern. Contains information about R (Y) - first,
G (Cb) - second, B(Cr) - third components.
"""
def __init__(self, first: int = 0, second: int = 0, third: int = 0):
if not (0 <= first <= 255):
warnings.warn("Incorrect value. Must use value from range: 0 - 255. Will be used default value = 0")
first = 0
self.first = first
if not (0 <= second <= 255):
warnings.warn("Incorrect value. Must use value from range: 0 - 255. Will be used default value = 0")
second = 0
self.second = second
if not (0 <= third <= 255):
warnings.warn("Incorrect value. Must use value from range: 0 - 255. Will be used default value = 0")
third = 0
self.third = third
class WhiteVStripsParams:
"""
Special configuration class for configure White V Strips pattern. Contains information about white stripes width
and black stripes width.
"""
def __init__(self, white_stripes_width: int = 1, black_stripes_width: int = 1):
if not (1 <= white_stripes_width <= 1000):
warnings.warn("Incorrect value. Must use value from range: 1 - 1000. Will be used default value = 1")
white_stripes_width = 1
self.white_stripes_width = white_stripes_width
if not (0 <= black_stripes_width <= 1000):
warnings.warn("Incorrect value. Must use value from range: 1 - 1000. Will be used default value = 1")
black_stripes_width = 1
self.black_stripes_width = black_stripes_width
class GradientStripsParams:
"""
Special configuration class for configure Gradient Strips pattern. Contains information about color steps conut.
"""
def __init__(self, color_step: int = 10000):
if not (0 <= color_step <= 10000):
warnings.warn("Incorrect value. Must use value from range: 1 - 10000. Will be used default value = 1")
color_step = 1
self.color_step = color_step
class MotionParams:
"""
Special configuration class for configure Motion pattern. Contains information about frames conut.
"""
def __init__(self, frames_count: int = 10000):
if not (0 <= frames_count <= 10000):
warnings.warn("Incorrect value. Must use value from range: 1 - 10000. Will be used default value = 1")
frames_count = 1
self.frames_count = frames_count
class SquareWindowParams:
"""
Special configuration class for configure Square Window pattern. Contains information about white square size.
"""
def __init__(self, white_square: int = 30):
if not (0 <= white_square <= 100):
warnings.warn("Incorrect value. Must use value from range: 0 - 100. Will be used default value = 30")
white_square = 30
self.white_square = white_square
class StepsScrollingParams:
"""
Special configuration class for configure Scrolling (Steps type) pattern. Contains information about horizontally
delta, vertically delta and frames count.
"""
def __init__(self, horizontally: int = 0, vertically: int = 0, frames: int = 0):
if not (-128 <= horizontally <= 127):
warnings.warn("Incorrect value (horizontally). Must use value from range: (-)128 - 127. "
"For YCbCr 422 range: (-)128 - 126 \n"
"Will be used default value = 0")
horizontally = 0
if not (-128 <= vertically <= 127):
warnings.warn("Incorrect value (vertically). Must use value from range: (-)128 - 127. "
"For YCbCr 420 range: (-)128 - 126 \n"
"Will be used default value = 0")
vertically = 0
if not (0 <= frames <= 255):
warnings.warn("Incorrect value (frames). Must use value from range: 0 - 255. "
"Will be used default value = 0")
frames = 0
self.horizontally = (-1) * horizontally
self.vertically = vertically
self.frames = frames
class DistanceScrollingParams:
"""
Support of DistanceScrolling will be added later.
"""
def __init__(self):
pass
PGPatternParams = TypeVar("PGPatternParams",
SolidColorParams,
WhiteVStripsParams,
GradientStripsParams,
MotionParams,
SquareWindowParams
)
PGScrollingParams = TypeVar("PGScrollingParams",
StepsScrollingParams,
DistanceScrollingParams)