INNER CODE UNIT · Python

frame_seconds

unitedrhino/things · scripts/generate-energy-demo-svg.py:81

    frame_seconds = 1 / FRAME_RATE
    visible_until = frame_seconds / demo.duration
    lines = [
        '<?xml version="1.0" encoding="UTF-8"?>',
        f'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 {width} {height}" role="img" aria-label="智慧能源数字孪生演示">',
        f'  <rect width="{width}" height="{height}" fill="#0b1725"/>',
    ]
    for index, frame in enumerate(frames):
        encoded = base64.b64encode(frame.read_bytes()).decode("ascii")
        base_visibility = "visible" if index == 0 else "hidden"
        begin = index * frame_seconds
        lines.extend(
            [
                f'  <image width="{width}" height="{height}" visibility="{base_visibility}" href="data:image/jpeg;base64,{encoded}">',
                (
                    '    <animate attributeName="visibility" '
                    f'values="visible;hidden;hidden" keyTimes="0;{visible_until:.8f};1" '
                    f'begin="{begin:.1f}s" dur="{demo.duration}s" repeatCount="indefinite" calcMode="discrete"/>'

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…