valetudo-map-parser 0.1.9b47__tar.gz → 0.1.9b49__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/PKG-INFO +1 -1
- valetudo_map_parser-0.1.9b49/SCR/valetudo_map_parser/config/color_utils.py +51 -0
- valetudo_map_parser-0.1.9b49/SCR/valetudo_map_parser/config/drawable.py +892 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/pyproject.toml +1 -1
- valetudo_map_parser-0.1.9b47/SCR/valetudo_map_parser/config/drawable.py +0 -656
- valetudo_map_parser-0.1.9b47/SCR/valetudo_map_parser/utils/__init__.py +0 -5
- valetudo_map_parser-0.1.9b47/SCR/valetudo_map_parser/utils/color_utils.py +0 -62
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/LICENSE +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/NOTICE.txt +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/README.md +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/__init__.py +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/config/__init__.py +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/config/auto_crop.py +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/config/colors.py +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/config/drawable_elements.py +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/config/enhanced_drawable.py +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/config/optimized_element_map.py +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/config/rand25_parser.py +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/config/room_outline.py +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/config/shared.py +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/config/types.py +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/config/utils.py +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/hypfer_draw.py +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/hypfer_handler.py +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/map_data.py +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/py.typed +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/rand25_handler.py +0 -0
- {valetudo_map_parser-0.1.9b47 → valetudo_map_parser-0.1.9b49}/SCR/valetudo_map_parser/reimg_draw.py +0 -0
@@ -0,0 +1,51 @@
|
|
1
|
+
"""Utility functions for color operations in the map parser."""
|
2
|
+
|
3
|
+
from typing import Tuple, Optional
|
4
|
+
|
5
|
+
from SCR.valetudo_map_parser.config.colors import ColorsManagement
|
6
|
+
from SCR.valetudo_map_parser.config.types import NumpyArray, Color
|
7
|
+
|
8
|
+
|
9
|
+
def get_blended_color(
|
10
|
+
x0: int,
|
11
|
+
y0: int,
|
12
|
+
x1: int,
|
13
|
+
y1: int,
|
14
|
+
arr: Optional[NumpyArray],
|
15
|
+
color: Color,
|
16
|
+
) -> Color:
|
17
|
+
"""
|
18
|
+
Get a blended color for a pixel based on the current element map and the new element to draw.
|
19
|
+
|
20
|
+
This function:
|
21
|
+
1. Gets the current element at position (x,y) from the element map
|
22
|
+
2. Gets the color for that element from the colors manager
|
23
|
+
3. Blends the new color with the existing color based on alpha values
|
24
|
+
|
25
|
+
Returns:
|
26
|
+
Blended RGBA color to use for drawing
|
27
|
+
"""
|
28
|
+
# Sample background color at the endpoints and blend with foreground color
|
29
|
+
# This is more efficient than sampling at every pixel
|
30
|
+
if 0 <= y0 < arr.shape[0] and 0 <= x0 < arr.shape[1]:
|
31
|
+
start_blended_color = ColorsManagement.sample_and_blend_color(
|
32
|
+
arr, x0, y0, color
|
33
|
+
)
|
34
|
+
else:
|
35
|
+
start_blended_color = color
|
36
|
+
|
37
|
+
if 0 <= y1 < arr.shape[0] and 0 <= x1 < arr.shape[1]:
|
38
|
+
end_blended_color = ColorsManagement.sample_and_blend_color(
|
39
|
+
arr, x1, y1, color
|
40
|
+
)
|
41
|
+
else:
|
42
|
+
end_blended_color = color
|
43
|
+
|
44
|
+
# Use the average of the two blended colors
|
45
|
+
blended_color = (
|
46
|
+
(start_blended_color[0] + end_blended_color[0]) // 2,
|
47
|
+
(start_blended_color[1] + end_blended_color[1]) // 2,
|
48
|
+
(start_blended_color[2] + end_blended_color[2]) // 2,
|
49
|
+
(start_blended_color[3] + end_blended_color[3]) // 2,
|
50
|
+
)
|
51
|
+
return blended_color
|