import cairosvg
import imageio
from PIL import Image
import io
import osdef svg_to_png(svg_path, png_path):try:cairosvg.svg2png(url=svg_path, write_to=png_path)print(f"成功将 {svg_path} 转换为 {png_path}")except Exception as e:print(f"转换为 PNG 时出错: {e}")def svg_to_gif(svg_path, gif_path):try:png_bytes = cairosvg.svg2png(url=svg_path)image = Image.open(io.BytesIO(png_bytes))image.save(gif_path, save_all=True, append_images=[image], duration=100, loop=0)print(f"成功将 {svg_path} 转换为 {gif_path}")except Exception as e:print(f"转换为 GIF 时出错: {e}")if __name__ == "__main__":current_directory = os.getcwd()input_directory = current_directoryoutput_directory = os.path.join(current_directory, 'output_images')if not os.path.exists(output_directory):os.makedirs(output_directory)for filename in os.listdir(input_directory):if filename.endswith('.svg'):svg_file = os.path.join(input_directory, filename)base_name = os.path.splitext(filename)[0]png_file = os.path.join(output_directory, f'{base_name}.png')gif_file = os.path.join(output_directory, f'{base_name}.gif')svg_to_png(svg_file, png_file)svg_to_gif(svg_file, gif_file)