MCPcopy Create free account
hub / github.com/Infiziert90/getnative / _DefineScaler

Class _DefineScaler

getnative/app.py:31–83  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29
30
31class _DefineScaler:
32 def __init__(self, kernel: str, b: Union[float, int] = 0, c: Union[float, int] = 0, taps: int = 0):
33 """
34 Get a scaler for getnative from descale
35
36 :param kernel: kernel for descale
37 :param b: b value for kernel "bicubic" (default 0)
38 :param c: c value for kernel "bicubic" (default 0)
39 :param taps: taps value for kernel "lanczos" (default 0)
40 """
41
42 self.kernel = kernel
43 self.b = b
44 self.c = c
45 self.taps = taps
46 self.plugin = get_attr(core, 'descale', None)
47 if self.plugin is None:
48 return
49
50 self.descaler = getattr(self.plugin, f'De{self.kernel}', None)
51 self.upscaler = getattr(core.resize, self.kernel.title())
52
53 self.check_input()
54 self.check_for_extra_paras()
55
56 def check_for_extra_paras(self):
57 if self.kernel == 'bicubic':
58 self.descaler = partial(self.descaler, b=self.b, c=self.c)
59 self.upscaler = partial(self.upscaler, filter_param_a=self.b, filter_param_b=self.c)
60 elif self.kernel == 'lanczos':
61 self.descaler = partial(self.descaler, taps=self.taps)
62 self.upscaler = partial(self.upscaler, filter_param_a=self.taps)
63
64 def check_input(self):
65 if self.descaler is None and self.kernel == "spline64":
66 raise GetnativeException(f'descale: spline64 support is missing, update descale (>r3).')
67 elif self.descaler is None:
68 raise GetnativeException(f'descale: {self.kernel} is not a supported kernel.')
69
70 def __str__(self):
71 return (
72 f"{self.kernel.capitalize()}"
73 f"{'' if self.kernel != 'bicubic' else f' b {self.b:.2f} c {self.c:.2f}'}"
74 f"{'' if self.kernel != 'lanczos' else f' taps {self.taps}'}"
75 )
76
77 def __repr__(self):
78 return (
79 f"ScalerObject: "
80 f"{self.kernel.capitalize()}"
81 f"{'' if self.kernel != 'bicubic' else f' b {self.b:.2f} c {self.c:.2f}'}"
82 f"{'' if self.kernel != 'lanczos' else f' taps {self.taps}'}"
83 )
84
85
86common_scaler = {

Callers 3

app.pyFile · 0.85
mask_detailMethod · 0.85
getnativeFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected