Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_round2(self):
self.assertEqual(tkf.round2(1.1), 1)
self.assertIsInstance(tkf.round2(1.1), int)
def get(self):
"""
Get selected color.
:return: color under cursor as a (RGB, HSV, HEX) tuple
"""
x = self.coords('cross_v')[0]
y = self.coords('cross_h')[1]
xp = min(x, self.bg.width() - 1)
yp = min(y, self.bg.height() - 1)
try:
r, g, b = self.bg.get(round2(xp), round2(yp))
except ValueError:
r, g, b = self.bg.get(round2(xp), round2(yp)).split()
r, g, b = int(r), int(g), int(b)
hexa = rgb_to_hexa(r, g, b)
h = self.get_hue()
s = round2((1 - float(y) / self.winfo_height()) * 100)
v = round2(100 * float(x) / self.winfo_width())
return (r, g, b), (h, s, v), hexa
def _on_move(self, event):
"""Make selection cursor follow the cursor."""
w = self.winfo_width()
x = min(max(event.x, 0), w)
self.coords('cursor', x, 0, x, self.winfo_height())
self._variable.set(round2((255. * x) / w))
col = hexa_to_rgb(color)
self._old_color = col[:3]
if alpha:
self._old_alpha = col[3]
old_color = color
else:
old_color = color[:7]
elif re.match(r"^#[0-9A-F]{6}$", color.upper()):
self._old_color = hexa_to_rgb(color)
old_color = color
if alpha:
self._old_alpha = 255
old_color += 'FF'
else:
col = self.winfo_rgb(color)
self._old_color = tuple(round2(c * 255 / 65535) for c in col)
args = self._old_color
if alpha:
self._old_alpha = 255
args = self._old_color + (255,)
old_color = rgb_to_hexa(*args)
else:
self._old_color = color[:3]
if alpha:
if len(color) < 4:
color += (255,)
self._old_alpha = 255
else:
self._old_alpha = color[3]
old_color = rgb_to_hexa(*color)
# --- GradientBar
def get(self):
"""Return hue of color under cursor."""
coords = self.coords('cursor')
return round2(360 * coords[0] / self.winfo_width())
def _draw_gradient(self, alpha, color):
"""Draw the gradient and put the cursor on alpha."""
self.delete("gradient")
self.delete("cursor")
del self.gradient
width = self.winfo_width()
height = self.winfo_height()
bg = create_checkered_image(width, height)
r, g, b = color
w = width - 1.
gradient = Image.new("RGBA", (width, height))
for i in range(width):
for j in range(height):
gradient.putpixel((i, j), (r, g, b, round2(i / w * 255)))
self.gradient = ImageTk.PhotoImage(Image.alpha_composite(bg, gradient),
master=self)
self.create_image(0, 0, anchor="nw", tags="gardient",
image=self.gradient)
self.lower("gradient")
x = alpha / 255. * width
h, s, v = rgb_to_hsv(r, g, b)
if v < 50:
fill = "gray80"
else:
fill = 'black'
self.create_line(x, 0, x, height, width=2, tags='cursor', fill=fill)
def _fill(self):
"""Create the gradient."""
r, g, b = hue2col(self._hue)
width = self.winfo_width()
height = self.winfo_height()
h = float(height - 1)
w = float(width - 1)
if height:
c = [(r + i / h * (255 - r), g + i / h * (255 - g), b + i / h * (255 - b)) for i in range(height)]
data = []
for i in range(height):
line = []
for j in range(width):
rij = round2(j / w * c[i][0])
gij = round2(j / w * c[i][1])
bij = round2(j / w * c[i][2])
color = rgb_to_hexa(rij, gij, bij)
line.append(color)
data.append("{" + " ".join(line) + "}")
self.bg.put(" ".join(data))
def _fill(self):
"""Create the gradient."""
r, g, b = hue2col(self._hue)
width = self.winfo_width()
height = self.winfo_height()
h = float(height - 1)
w = float(width - 1)
if height:
c = [(r + i / h * (255 - r), g + i / h * (255 - g), b + i / h * (255 - b)) for i in range(height)]
data = []
for i in range(height):
line = []
for j in range(width):
rij = round2(j / w * c[i][0])
gij = round2(j / w * c[i][1])
bij = round2(j / w * c[i][2])
color = rgb_to_hexa(rij, gij, bij)
line.append(color)
data.append("{" + " ".join(line) + "}")
self.bg.put(" ".join(data))
def _fill(self):
"""Create the gradient."""
r, g, b = hue2col(self._hue)
width = self.winfo_width()
height = self.winfo_height()
h = float(height - 1)
w = float(width - 1)
if height:
c = [(r + i / h * (255 - r), g + i / h * (255 - g), b + i / h * (255 - b)) for i in range(height)]
data = []
for i in range(height):
line = []
for j in range(width):
rij = round2(j / w * c[i][0])
gij = round2(j / w * c[i][1])
bij = round2(j / w * c[i][2])
color = rgb_to_hexa(rij, gij, bij)
line.append(color)
data.append("{" + " ".join(line) + "}")
self.bg.put(" ".join(data))