Removing Blank and Hidden Layers from an SVG
We discovered our former graphics designer was including all the hidden layers in his SVG icons. Each icon, that is, had a copy of every other icon stored inside invisibly. The practical upshot is our dashboard icons were in excess of 4MB to load. I wrote a simple script to iterate through and strip invisible layers. For anyone that might find utility:
def remove_blank_layers(image_name): tree = ET.ElementTree(); tree.parse(image_name); root = tree.getroot(); children_to_remove = list(); for child in root.getchildren(): if child.attrib.get('display') == 'none': children_to_remove.append(child); for child in children_to_remove: root.remove(child); tree.write(image_name);