To jest polecenie sng, które można uruchomić w bezpłatnym dostawcy hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS
PROGRAM:
IMIĘ
sng - kompilator/dekompilator skryptowej grafiki sieciowej
STRESZCZENIE
piosenka [-vV] [filet...]
OPIS
Kurs piosenka program tłumaczy między formatem PNG (Portable Network Graphics) a SNG
(Skryptowalna grafika sieciowa). SNG to drukowalny i edytowalny minijęzyk dla
opisujące pliki PNG. Dzięki sng łatwo jest przeglądać i edytować egzotyczne fragmenty PNG
obsługiwane przez edytory graficzne; ponadto, ponieważ SNG jest łatwe do wygenerowania ze skryptów, sng może
być przydatne na końcu potoku, który programowo generuje obrazy PNG.
Opis SNG składa się z szeregu specyfikacji porcji w prostym, edytowalnym tekście
format. Zwykle odpowiadają one fragmentom PNG jeden do jednego. Jest jeden wyjątek; the
Specyfikacja fragmentu IMAGE jest automatycznie tłumaczona na fragment IDAT (doing
odpowiedni przeplot, kompresja itp.).
Biorąc pod uwagę brak argumentów pliku, piosenka tłumaczy stdin na stdout. W tym trybie sprawdza pierwszy
postać. Jeśli ten znak można wydrukować, przyjmuje się, że strumień wejściowy zawiera SNG; piosenka
szuka lidera #SNG i próbuje przetłumaczyć plik na format PNG. Jeśli postać jest
niedrukowalny, przyjmuje się, że strumień wejściowy zawiera PNG; piosenka próbuje to przetłumaczyć
SNG.
Dla każdego pliku piosenka działa, dokonuje konwersji zgodnie z rozszerzeniem pliku
(.png lub .sng). Plik wynikowy ma taką samą nazwę na lewo od kropki jak oryginał, ale plik
przeciwne rozszerzenie i typ.
Opcja -V powoduje piosenka zidentyfikować siebie i swoją wersję, a następnie wyjść. Opcja -v powoduje, że
piosenka raportuj, jakie pliki konwertuje.
SNG JĘZYK SKŁADNIA
Ogólnie rzecz biorąc, język SNG jest zorientowany na tokeny, a tokeny są oddzielone białymi znakami.
Wszędzie tam, gdzie mogą pojawić się białe spacje, lider komentarza `#' powoduje, że wszystkie znaki dochodzą do
następny znak nowej linii, który należy zignorować. Znaki `:' i `;' są traktowani jako
białe znaki, z wyjątkiem `;' kończy element danych (patrz poniżej).
W poniższych opisach składni wiersze między {} mogą występować w dowolnej kolejności. Elementy
w nawiasach w [] są opcjonalne; sekwencja ujęta w nawiasy []* może zostać powtórzona dowolną liczbę
czasy. Elementy oddzielone | są alternatywy. Elementy oddzielone znakami plusa to an
zestaw atrybutów; dowolna sekwencja jednego lub więcej z tych żetonów elementów jest ważna.
Elementy , , , , są liczbami bajtowymi, krótkimi liczbami całkowitymi
odpowiednio literały liczbowe, liczbowe typu long-integer i zmiennoprzecinkowe (wszystkie bez znaku). The
element jest literałem liczbowym ze znakiem. Wszystkie liczby używają konwencji C; to jest,
są dziesiętne, chyba że są poprzedzone przez 0x (szesnastkowo) lub 0 (ósemkowo).
Element to dowolna liczba literałów ciągu znaków rozdzielonych podwójnymi cudzysłowami.
Interpretowane są znaki ucieczki w stylu C (\n, \t, \b, \r lub \, po których następuje cyfra ósemkowa lub szesnastkowa). The
wynikiem jest połączenie wszystkich literałów.
Element jest słowem kluczowym PNG rozdzielanym cudzysłowami; to znaczy, że nie ma już żadnego ciągu
niż 79 drukowalnych znaków lub spacji Latin-1, bez początkowych i końcowych znaków oraz nr
kolejne spacje.
A element składa się z sekwencji specyfikacji bajtów w dowolnym z poniższych elementów
formaty. Albo „}” albo „;” kończy literał danych; `}' również kończy otaczającą porcję.
1. ciąg format jest literałem łańcuchowym SNG lub sekwencją literałów łańcuchowych (patrz wyżej). The
bajty danych to zawartość ciągu.
2. base64 format jest sygnalizowany przez wiodący token `base64'. To kodowanie może być tylko
używany, gdy wartości wszystkich bajtów są mniejsze niż 64. Koduje każdy bajt jako pojedynczy
znak, z cyframi dziesiętnymi reprezentującymi wartości 0-9, po których następuje AZ dla 10-35,
następnie az dla 36-61, następnie + dla 62 i / dla 63. Format Base64 może być użyty, jeśli
obraz ma całkowitą głębię bitową (kolor plus alfa) równą lub mniejszą niż cztery, albo jest to a
spaletyzowany obraz zawierający 64 lub mniej kolorów. Białe znaki są ignorowane. Należy pamiętać, że to kodowanie jest
tylko bardzo luźno powiązany z kodowaniem RFC2045 base-64, które wykorzystuje inne mapowanie
bajtów na wartości i obsługuje kodowanie dowolnych danych binarnych.
3. hex format jest sygnalizowany przez wiodący token `hex'. W formacie szesnastkowym każdy bajt jest
określony przez dwie cyfry szesnastkowe (0123456789abcdef), od najbardziej znaczącej jako pierwszej. Biała spacja jest
ignorowane.
4. P1 formatem jest format Portable Bit Map (PBM) P1. Następuje dziesiętna wysokość i szerokość; To
jest dla nich błędem krytycznym, że nie pasują do wymiarów IHDR. W ślad za tym jedyny
oczekuje się, że znakami nie będącymi białymi znakami będą `0' i `1', z oczywistymi wartościami.
Białe znaki są ignorowane.
5. P3 formatem jest format Portable Pixel Map (PPM) P3. Następuje dziesiętna wysokość i szerokość; To
jest dla nich błędem krytycznym, że nie pasują do wymiarów IHDR. Maksymalna wartość kanału w
następuje dziesiętny; przekroczenie tej wartości przez jakąkolwiek następną wartość kanału jest błędem krytycznym.
Po tym następują trójki dziesiętnych wartości kanałów reprezentujących trójki RGB. Biała przestrzeń
oddziela dziesiętne wartości kanału, ale poza tym jest ignorowane.
Jakiś element można rozszerzyć do:
( , , ) |
Oznacza to, że jest to albo ujęta w nawiasy lista wartości RGB, albo ciąg określający nazwę koloru
w bazie danych X RGB. Należy pamiętać, że nazwy kolorów niekoniecznie są przenośne między hostami lub
nawet wyświetla, ze względu na różne współczynniki gamma ekranu i odchylenia kolorymetryczne. Z tego powodu,
dekompilator SNG generuje nazwy kolorów w komentarzach.
Segmenty IMAGE zawierają rozpakowane i bez przeplotu dane rastrowe. Będzie dokładnie jeden
IMAGE na zrzut SNG, zawierający dane pikseli ze wszystkich porcji IDAT, z wyjątkiem opcji -i
jest włączony. W takim przypadku będzie wiele fragmentów IDAT zawierających surowy (skompresowany) obraz
danych.
Członek opcji fragmentu IMAGE (jeśli jest obecny) ustawia transformacje zapisu obrazu,
dostarczając trzeci argument wywołania png_write_png() używanego jako wynik. Zauważ, że dla
obrazów o głębi bitowej mniejszej niż 8, stosowana jest domyślna transformacja „upakowania”.
Zapoznaj się z biblioteka(3) strona podręcznika, aby uzyskać szczegółowe informacje.
Każdy plik SNG musi zaczynać się od ciągu znaków „#SNG”, po którym następuje opcjonalna wersja SNG
informacje, po których następuje znak dwukropka („:”, ASCII 58). Pozostała część pierwszego
linia jest ignorowana przez SNG.
Komentarze na diagramie składni opisują zamierzoną semantykę. Taka specyfikacja powinna być
czytać w połączeniu ze standardem PNG.
IHDR {
wysokość
szerokość
głębia bitowa
[przy użyciu skali szarości+koloru+palety+alfa]
[z przeplotem] # Adam7 zakłada, że włączony jest przeplot
}
PLTE {
[ ]* # Trójki RGB lub X nazw kolorów
}
IDATA {
}
gamma { }
CHRM {
biały ( , ) # Punkt bieli x i y
czerwony ( , )
zielony ( , )
niebieski ( , )
}
sRGB { } # Cel kolorymetrii, zakres 0-3
iCCP {# Profil Międzynarodowego Konsorcjum Kolorystycznego
nazwa
profil
}
bit {
czerwony # Tylko obrazy kolorowe
niebieski # Tylko obrazy kolorowe
zielony # Tylko obrazy kolorowe
szary # Tylko obrazy w skali szarości
alfa # Obrazy tylko w wersji alfa
}
bKGD {
czerwony # Tylko obrazy kolorowe
niebieski # Tylko obrazy kolorowe
zielony # Tylko obrazy kolorowe
szary # Tylko obrazy w skali szarości
indeks # Tylko obrazy z paletą
}
hIST {
[, ]* # Liczba musi pasować do rozmiaru palety
}
tRNS {
[szary ] # Tylko obrazy w skali szarości
[czerwony ] # Tylko obrazy w prawdziwych kolorach
[zielony ] # Tylko obrazy w prawdziwych kolorach
[niebieski ] # Tylko obrazy w prawdziwych kolorach
[ ]* # Tylko obrazy z paletą
}
fizyczność {
xpikseli
piksele
[za metr]
}
czas {
rok
miesiąc
dzień
godzina
minuta
drugi
}
tEXt { # Zwykły fragment tekstu
słowo kluczowe
tekst
}
zTXt { # Skompresowany fragment tekstu
słowo kluczowe
tekst
}
iTXt { # Międzynarodowe słowo kluczowe UTF-8
język
słowo kluczowe
przetłumaczony # Tłumaczenie słowa kluczowego
tekst
[sprężony]
}
oFF {
xprzesunięcie
przesunięcie y
[piksele jednostkowe|mikrometry]*
}
SPLT {
nazwa
głębokość
[ , , ]* # Kolor, po którym następuje alfa i częstotliwość
}
pKAL {
nazwa
x0
x1
mapowanie jednostki liniowej|eulera|wykładniczej|hiperboli
[parametry ]
}
SKALA {
jednostka metr|radian
szerokość
wysokość
}
OBRAZ {
opcje tożsamość+pakowanie+packswap+invert_mono
+shift+bgr+swap_alpha+invert_alpha+swap_endian+strip_filler
pikseli
}
gIFg {
sprzedaż
wejście
opóźnienie
}
GIFx {
identyfikator # Musi mieć 8 znaków
kod # Musi mieć 3 znaki
dane
}
prywatny { # Deklaracja fragmentu prywatnego
}
Korzystaj ze sng online za pomocą usług onworks.net