SathvikGanta
commited on
Commit
•
22a3fe9
1
Parent(s):
eca402f
Delete svg_editor.py
Browse files- svg_editor.py +0 -49
svg_editor.py
DELETED
@@ -1,49 +0,0 @@
|
|
1 |
-
from xml.etree.ElementTree import ElementTree
|
2 |
-
|
3 |
-
def apply_transformations(output_svg, brightness, text_scale, line_scale):
|
4 |
-
"""
|
5 |
-
Applies transformations to the SVG file for brightness, text size, and line thickness.
|
6 |
-
|
7 |
-
Args:
|
8 |
-
output_svg (str): Path to the SVG file.
|
9 |
-
brightness (float): Brightness level (0.5 to 5.0).
|
10 |
-
text_scale (float): Scale for text size (e.g., 1.5 for 150%).
|
11 |
-
line_scale (float): Scale for line thickness (0.5 to 5.0).
|
12 |
-
"""
|
13 |
-
tree = ElementTree()
|
14 |
-
tree.parse(output_svg)
|
15 |
-
root = tree.getroot()
|
16 |
-
|
17 |
-
# Adjust line thickness
|
18 |
-
for element in root.findall(".//path"):
|
19 |
-
current_style = element.attrib.get("style", "")
|
20 |
-
new_style = f"stroke-width:{line_scale}px; fill-opacity:{brightness/5}; {current_style}"
|
21 |
-
element.attrib["style"] = new_style.strip()
|
22 |
-
|
23 |
-
# Adjust text size
|
24 |
-
for element in root.findall(".//text"):
|
25 |
-
# Check if the element has a 'font-size' attribute and scale it
|
26 |
-
font_size_attr = element.attrib.get("style", "")
|
27 |
-
if "font-size" in font_size_attr:
|
28 |
-
# Extract current font-size and apply the scale
|
29 |
-
current_font_size = extract_font_size(font_size_attr)
|
30 |
-
new_font_size = current_font_size * text_scale
|
31 |
-
new_style = font_size_attr.replace(
|
32 |
-
f"font-size:{current_font_size}px;", f"font-size:{new_font_size}px;"
|
33 |
-
)
|
34 |
-
element.attrib["style"] = new_style
|
35 |
-
else:
|
36 |
-
# If no font-size is specified, apply a default base font-size scaled by text_scale
|
37 |
-
new_style = f"font-size:{text_scale}em; {element.attrib.get('style', '')}"
|
38 |
-
element.attrib["style"] = new_style.strip()
|
39 |
-
|
40 |
-
# Save updated SVG
|
41 |
-
tree.write(output_svg)
|
42 |
-
|
43 |
-
def extract_font_size(style):
|
44 |
-
"""Extracts the font-size in px from a style string. Defaults to 16px if not found."""
|
45 |
-
import re
|
46 |
-
match = re.search(r"font-size:(\d+(\.\d+)?)px;", style)
|
47 |
-
if match:
|
48 |
-
return float(match.group(1))
|
49 |
-
return 16.0 # Default font size if not specified
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|