Vector Engine

Formaty eksportu

SVG, PNG, JPEG i BMP (24/32-bit) — zachowanie alpha, jakość, minifikacja, skala, fit modes i marginesy.

SVG#

SVG zachowuje prymitywy wektorowe, ścieżki, atrybuty tekstu, złożone transformacje afiniczne, grupy warstw, mix-blend-mode, przycinanie <clipPath> i gradienty w <defs> (linearGradient, radialGradient).

  • Tekst i atrybuty są bezpiecznie escapowane w XML.
  • minifySvg kompaktuje precyzję liczb, tokeny path, skrócone kolory i redundantne atrybuty domyślne — bez zmiany geometrii.
bash
vector-engine scene.json out.svg

PNG#

PNG koduje straight-alpha 8-bit RGBA (colorType = 6) bezstratnie. Tło dokumentu, własny HEX i pełna przezroczystość są zachowane czysto, bez artefaktów premultiplication.

bash
vector-engine scene.json out.png --transparent

JPEG#

JPEG składa półprzezroczyste i przezroczyste regiony na nieprzezroczystym tle:

  • przy --transparent tłem staje się #FFFFFF i emitowane jest jawne ostrzeżenie o alpha-flattening,
  • jakość 1–100,
  • baseline YCbCr DCT.
bash
vector-engine scene.json out.jpg --quality 90 --background "#F4F7FF"

BMP#

Dwa warianty nieskompresowanego bottom-up Windows BMP:

WariantNagłówekAlpha
24-bit BGR (bmpBitDepth: 24, domyślny)54-bajtowy BITMAPINFOHEADERskładany na tle; ostrzeżenie przy --transparent
32-bit BGRA (bmpBitDepth: 32)122-bajtowy BITMAPV4HEADER (BI_BITFIELDS, maski sRGB)pełne 8-bit alpha

Wiersze są wyrównane do 4 bajtów.

bash
vector-engine scene.json out.bmp

Skala i wymiary#

  • Presety skali: 0.5×, 1×, 2×, 3×, 4×.
  • Custom: szerokość i wysokość 1–16 384 px, maks. 67 108 864 px i guard 512 MB RAM roboczego.

Fit modes#

Gdy custom wymiary różnią się od źródła:

TrybZachowanie
containLetterbox/pad — całość widoczna
coverCenter crop — wypełnia, przycina
stretchSkala niejednorodna — rozciąga

Marginesy i przycinanie#

  • Marginesy eksportu: 0–4 096 px.
  • trimToBounds — ciasne granice treści.
  • includeHidden — dołącz ukryte elementy.
  • clipToBounds — ścisłe przycinanie do granic.

Tła#

Format--transparent
SVGzachowane (background: none)
PNGzachowane (alpha)
JPEGflattening do #FFFFFF + ostrzeżenie
BMP 24flattening do tła + ostrzeżenie
BMP 32zachowane (alpha)

Przykłady CLI#

bash
vector-engine scene.json out.svg

vector-engine scene.json out@2x.png --width 2400 --height 1600

vector-engine scene.json hero.jpg --quality 85 --background "#0F1220"

vector-engine scene.json icon.bmp --width 512 --height 512 --transparent

vector-engine scene.json print.png --width 4096 --height 4096

JPEG i BMP 24 nie mają alpha

Jeśli scena ma przezroczystość, a eksportujesz do JPEG lub BMP 24, silnik złoży ją na wybranym tle i powie o tym ostrzeżeniem. Do przezroczystości używaj PNG, SVG lub BMP 32.

Estymacja rozmiaru#

Przed eksportem panel pokazuje estymowany rozmiar pliku i RAM roboczego (sizeEstimator.ts), diagnozę alpha i miniaturę podglądu (≤ 320 px). Dzięki temu wiesz, czy 8192×8192 zmieści się w budżecie, zanim klikniesz Eksport.