-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnumberspace.py
More file actions
62 lines (53 loc) · 1.62 KB
/
numberspace.py
File metadata and controls
62 lines (53 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# -*- coding: utf-8 -*-
"""
This is a number space conversion layer
"""
from smartimage.layer import *
class NumberSpace(Layer):
"""
This is a number space conversion layer
"""
def __init__(self,parent:Layer,xml:str):
Layer.__init__(self,parent,xml)
@property
def space(self)->str:
"""
nunberspace to transform to/from
"""
return self._getProperty('space')
@property
def levels(self):
"""
the levels to use (if necessary for a given transformation)
"""
return self._getProperty('levels')
@property
def mode(self):
"""
the mode to use (if necessary for a given transformation)
"""
return self._getProperty('mode')
@property
def invert(self)->bool:
"""
perform the reverse transformation to get back to the original
"""
return self._getPropertyBool('invert')
@property
def complex(self)->bool:
"""
whether or not complex number results are allowed
"""
return self._getPropertyBool('complex')
def renderImage(self,renderContext=None)->Union[PilPlusImage,None]:
"""
WARNING: Do not modify the image without doing a .copy() first!
"""
opacity=self.opacity
if opacity<=0.0 or not self.visible:
return None
image=numberspaceTransform(Layer.renderImage(self,renderContext).copy(),
self.space,invert=self.invert,complex=self.complex,level=self.levels,mode=self.mode)
if self.opacity<1.0:
self.setOpacity(image,opacity)
return image