Анімований SVG
Зображення SVG, що анімується саме, записується як будь-яке зображення:

Що зчитується
Анімації, записані в самому файлі SVG: SMIL (animate, animateTransform, animateMotion, animateColor, set, з begin, dur, repeatCount, fill, calcMode, keyTimes і keySplines) та CSS (@keyframes з властивостями animation, transform-origin і transform-box). Те, що не розпізнано, наприклад подія на кшталт begin="click", пропускається й повідомляється попередженням: ніщо не відкидається мовчки.
Що показує кожен вивід
- HTML: браузер сам відтворює анімації.
- PowerPoint (
--pptx) і OpenDocument (--odp): кожен анімований елемент є окремою фігурою, а його анімації стартують разом зі слайдом: рух, обертання і масштаб, прозорість, перехід між двома кольорами. Рух елемента вибирається у власні моменти анімації, тож прискорення, кілька ключових кадрів і обертання навколо іншої точки точні. Повтори (такожindefinite), затримки та зворотні ходи переносяться. - Кадри: коли анімацію не можна виразити так (контур, що деформується, лінія, що малюється, нахил), усе зображення рендериться у власні моменти анімації й вбудовується як анімований GIF, який відтворюють PowerPoint та Impress. Це обмежено: 12 кадрів на секунду, щонайбільше 240 кадрів, 16 мільйонів пікселів на всі кадри разом.
- PDF (
--pdf) і зображення (--images): вони не можуть анімуватися. Малюнок показано в початковому стані, без JavaScript і безRichMedia, а одне попередження називає анімовані зображення.
Кожне анімоване зображення отримує один рядок попередження з кодом svg-animation, що каже, як його перенесено: нативно чи кадрами і чому.
Підтримка за виводом
| Можливість | HTML | PowerPoint | OpenDocument | PDF і зображення |
|---|---|---|---|---|
| Зсув, рух уздовж контуру | відтворюється | нативно | нативно | початковий стан |
| Обертання і масштаб навколо будь-якої точки | відтворюється | нативно | нативно | початковий стан |
| Радіус кола, розмір прямокутника (без обведення) | відтворюється | нативно | нативно | початковий стан |
| Прозорість елемента з однієї фігури | відтворюється | нативно | нативно | початковий стан |
| Колір заливки або обведення, від одного кольору до іншого | відтворюється | нативно | нативно | початковий стан |
| Повтори, затримки, зворотні ходи, утримання в кінці | відтворюється | нативно | нативно | початковий стан |
| Прискорення, кілька ключових кадрів | відтворюється | нативно (з вибіркою) | нативно (з вибіркою) | початковий стан |
| Кроки, дискретні зміни | відтворюється | кадри | кадри | початковий стан |
| Деформація контуру, зсув штрихів, атрибути положення і розміру, градієнти | відтворюється | кадри | кадри | початковий стан |
| Нахил, віддзеркалення, кілька годинників в одному елементі, вкладені анімовані елементи | відтворюється | кадри | кадри | початковий стан |
| Події | відтворюється | не переноситься (попередження) | не переноситься (попередження) | початковий стан |
Локальні файли
Локальне зображення читається лише з --allow-local-files, з теки презентації, як у marp-cli. Без цього параметра зображення лишається поза експортами, а збирання повідомляє про це через local-file-blocked, називаючи файл, його слайди та параметр. Файл, якого не існує, повідомляється як local-file-missing.
Обмеження
SVG є недовіреним вхідним записом, тому він обмежений: 8 МіБ SVG, 50 000 елементів, 2 000 анімацій, 256 ключових кадрів однієї анімації, 60 секунд часової шкали та 240 кадрів. Малюнок, що перевищує межу, відхиляється з попередженням, а збирання триває.
Що перевірено
LibreOffice Impress (macOS) відкриває файли PowerPoint і OpenDocument і зберігає кожну анімацію під час повторного збереження в обох форматах. Keynote (macOS) імпортує фігури та анімований GIF; його анімації не перевіряли. PowerPoint: ще не перевірено.
Created on by tannevaled
Modified on by tannevaled