Aby zdiagnozować plik SVG z Affinity, który wygląda na rozmyty lub ma nieoczekiwane wypełnienie, wyizoluj jedną problematyczną krzywą, porównaj ustawienia rasteryzacji, a następnie sprawdź jej wypełnienie i tryb wypełnienia. Te testy pomagają odróżnić ograniczenia eksportu od ustawień obiektu i różnic w aplikacji docelowej.

Ten przewodnik opisuje eksport rysunku wektorowego z aktualnej aplikacji Affinity na komputer Mac oraz sprawdzanie jego wyglądu w przeglądarce lub innej aplikacji desktopowej. Ścieżki menu odpowiadają aktualnemu Centrum pomocy Affinity; w starszych wersjach Affinity Designer menu mogą znajdować się w innych miejscach.

Zacznij od jednej krzywej i kontrolowanego eksportu

Zapisz kopię roboczą dokumentu Affinity. Wybierz jedną krzywą, na której wyraźnie widać problem, i zapisz oczekiwany rezultat, na przykład „niebieskie zakrzywione obramowanie bez wypełnienia wnętrza” albo „wypełniony pierścień z przezroczystym środkiem”. Ułatwi to ocenę każdego testu bez zmieniania kilku niepowiązanych właściwości.

Otwórz Plik > Eksportuj > Eksportuj, wybierz SVG jako format pliku i sprawdź ustawienia po prawej stronie. Dodatkowe opcje są dostępne w sekcji Zaawansowane. W przypadku wyizolowanego obiektu wybierz Obszar: tylko zaznaczenie; Obszar zaznaczenia uwzględnia również nakładające się warstwy. Affinity opisuje te różnice w pomocy dotyczącej okna dialogowego eksportu.

Zanim cokolwiek zmienisz, wyeksportuj plik bazowy. Otwórz go w Safari i w aplikacji, w której zauważono problem. Porównaj ten sam obszar przy podobnym rozmiarze wyświetlania, a następnie go powiększ. Zapisz, czy wada występuje w obu aplikacjach, tylko w aplikacji docelowej, czy już w podglądzie eksportu Affinity.

Potraktuj to porównanie jako pomoc diagnostyczną. Zgodność dwóch przeglądarek zwiększa pewność, że badana jest zawartość eksportu, ale sama w sobie nie wskazuje przyczyny. Różnice między przeglądarkami pozwalają zawęzić kwestię zgodności do zbadania.

Widoczny objaw Pierwszy test Co pomaga rozróżnić wynik
Krzywa staje się niewyraźna po powiększeniu Porównaj ustawienia rasteryzacji Zawartość zrasteryzowana a zachowana geometria
Zakrzywione obramowanie zyskuje jednolite wypełnienie wnętrza Sprawdź wypełnienie zaznaczonego obiektu Niepożądane wypełnienie a wygląd obramowania
Otwór znika lub nakładający się obszar zostaje wypełniony Porównaj tryby wypełnienia Różne definicje wnętrza kształtu
Plik wyświetla się nieprawidłowo tylko w jednej aplikacji docelowej Przetestuj uproszczoną kopię Obsługa przez aplikację docelową a ogólny problem z eksportem

Dlaczego krzywe w pliku SVG mogą być rozmyte?

Rozszerzenie SVG nie oznacza, że każdy obiekt w pliku pozostaje skalowalnym wektorem. Affinity wyraźnie informuje, że obiekty rastrowe w plikach SVG nadal tracą jakość po zmianie rozmiaru. W dokumentacji Praca z plikami SVG zaleca też umieszczanie grafiki internetowej na pełnych pikselach, aby zachować jej ostrość.

Najpierw sprawdź, czy rozmycie dotyczy całego rysunku, czy jednego obiektu z efektami. Jeśli zwykła krzywa pozostaje ostra obok rozmytego obiektu, wymaga to innego sprawdzenia niż sytuacja, w której rozmywają się wszystkie elementy. Na podstawie tej obserwacji zdecyduj, który obiekt wyizolować jako następny.

Porównaj trzy opcje rasteryzacji

Opcje eksportu SVG w Affinity oferują trzy ustawienia Rasteryzuj: Nic nie rasteruje podczas eksportu i pomija nieobsługiwane elementy; Nieobsługiwane właściwości rasteruje nieobsługiwane elementy; Wszystko rasteruje wszystkie elementy. W rezultacie ustawienie Nic może usunąć zawartość zamiast zachować jej wygląd jako wektorów. Zobacz Ustawienia eksportu.

Utwórz osobne eksporty z ustawieniami Nieobsługiwane właściwości i Nic, pozostawiając bez zmian obszar i pozostałe ustawienia. Porównaj problematyczną krzywą, jej efekty i ewentualne brakujące elementy. Nazwij pliki tak, aby wskazywały zmienione ustawienie i pozwalały prześledzić porównanie.

Jeśli problematyczna zawartość znika przy ustawieniu Nic, jest to zgodne z udokumentowanym ograniczeniem dotyczącym nieobsługiwanej zawartości. To powód, by uprościć wyizolowany obiekt i powtórzyć test. Nie dowodzi to, że cały pierwotny obiekt był zgodny z formatem wektorowym.

Jeśli zwykła wersja krzywej eksportuje się poprawnie, przywracaj jej styl po jednej zmianie naraz. Zatrzymaj się, gdy objaw powróci. Ta sekwencja pozwala znaleźć mniejszy, powtarzalny zestaw przyczyn bez zakładania, że każdy efekt, pędzel lub układ obiektów zachowa się tak samo podczas eksportu.

Wybierz między zachowaniem wyglądu a geometrii

W przypadku zachowanej zawartości rastrowej ustawienie DPI rasteryzacji określa rozdzielczość rasteryzowanych efektów, a opcja Zmniejsz rozdzielczość obrazów może obniżyć rozdzielczość rastrową. Zezwalaj na kompresję JPEG i ustawienie Jakość wpływają na zawartość rasteryzowaną. Opcja Użyj wzorków kafelkowych może umieścić rasteryzowany obszar w kształcie wektorowym wypełnionym bitmapą; obsługa tej funkcji w niektórych aplikacjach jest ograniczona. Opis tych opcji znajduje się w sekcji Ustawienia eksportu.

Na potrzeby diagnostycznego eksportu wyłącz zmniejszanie rozdzielczości i kompresję JPEG, a następnie ponownie porównaj ten sam obiekt. Jeśli zachowujesz wygląd rastrowy, oceń go przy docelowym rozmiarze końcowym. Zwiększenie rozdzielczości rastra nie odtwarza edytowalnej krzywej; wpływa na rastrową część wyniku.

Jeśli plik ma zachować skalowalną geometrię, uprość lub odtwórz problematyczny wygląd za pomocą obiektów wektorowych, a następnie powtórz eksport wyizolowanego obiektu. Celem jest eksport zawierający zamierzoną grafikę, który poprawnie zachowuje się po powiększeniu. Plik, w którym brakuje efektów, nie spełnia tego celu tylko dlatego, że pozostałe krzywe są ostre.

Dlaczego otwarta krzywa zyskuje nieoczekiwane wypełnienie?

Krzywa może mieć zarówno obramowanie, jak i wypełnienie. W SVG otwarte podścieżki są wypełniane tak, jakby ich końce łączył zamykający odcinek. Może to spowodować pojawienie się klina lub dużego wypełnionego obszaru, nawet jeśli widoczne obramowanie pozostaje otwarte. SVG określa też czarny jako początkową wartość wypełnienia, które jest dziedziczone. Zasady te opisano w SVG 1.1: Malowanie.

Zaznacz problematyczną krzywą i otwórz Okno > Ogólne > Kolor. Uaktywnij selektor Wypełnienie i wybierz próbkę Brak, jeśli zamierzona grafika ma być obramowaniem bez wypełnienia wnętrza. Upewnij się, że zmieniasz Wypełnienie, a nie Obramowanie. Aktualna dokumentacja panelu Kolor opisuje osobne selektory i próbkę Brak.

Ponownie wyeksportuj wyizolowaną krzywą. Jeśli wypełnienie wnętrza zniknie, sprawdź osobno pozostałe problematyczne obiekty przed eksportem całego rysunku. Nie ustawiaj opcji Brak dla wszystkich obiektów, chyba że cały rysunek ma zawierać wyłącznie obramowania.

Przykładowo, w przypadku otwartego łuku obramowanie biegnie od jednego końca do drugiego, a wypełnienie może zajmować obszar między łukiem a domyślnie prostą krawędzią zamykającą. Usunięcie wypełnienia rozwiązuje bezpośrednio problem tego obszaru. Zamknięcie krzywej zmienia jej geometrię i może wprowadzić niepożądaną krawędź obramowania.

Jeśli samodzielny plik SVG wygląda poprawnie w Safari, ale po zaimportowaniu do innej aplikacji zyskuje wypełnienie, powtórz test na prostej otwartej krzywej, której wypełnienie jawnie ustawiono na Brak. Dzięki temu uzyskasz precyzyjne porównanie dotyczące aplikacji docelowej. Nie wyciągaj wniosku, że Affinity na pewno wyeksportowało czarny kolor, wyłącznie na podstawie czarnego obszaru.

Dlaczego otwory i nakładające się obszary się zmieniają?

Wypełniony obszar wewnątrz złożonej krzywej rodzi inne pytanie niż niepożądane wypełnienie prostego otwartego obramowania. Affinity udostępnia tryby wypełnienia Alternatywny i Według kierunku, które określają, które obszary samoprzecinającej się krzywej są uznawane za wnętrze. Aktualne polecenie to Wektor > Tryb wypełnienia; wcześniej zaznacz obiekt. Zobacz Tryby wypełnienia.

Tryb Alternatywny korzysta z parzystości liczby przecięć. Tryb Według kierunku używa licznika ze znakiem, który uwzględnia kierunek ścieżki. W terminologii SVG odpowiadają im wartości evenodd i nonzero. Rozróżnienie ma znaczenie w przypadku samoprzecięć i zagnieżdżonych podścieżek, jak wyjaśniono w pomocy Affinity dotyczącej trybów wypełnienia oraz w specyfikacji reguły wypełnienia SVG.

Na duplikacie problematycznego obiektu porównaj oba tryby. Sprawdź każdy zamierzony otwór i nakładający się obszar, zanim wybierzesz tryb. Jeśli trzeba zbadać kierunek, Affinity opisuje opcję Pokaż kierunek krzywej w sekcji Ustawienia paska kontekstowego narzędzia Pióro lub Węzeł. Pozwala ona wyświetlić informacje istotne dla działania trybu Według kierunku. Zobacz Tryby wypełnienia.

Na przykład w przypadku zagnieżdżonego konturu tryb Alternatywny może pozostawić wewnętrzny obszar niewypełniony, ponieważ promień przecina dwie granice. W trybie Według kierunku wynik zależy od kierunku tych granic. Przełączenie trybu może przywrócić jeden otwór, a jednocześnie zmienić inny nakładający się obszar, dlatego oceniaj cały obiekt, a nie tylko jeden fragment.

Jeśli żaden tryb nie daje zamierzonego kształtu, wróć do konstrukcji krzywej. W kopii roboczej jawnie utwórz zamierzone wypełnione obszary i otwory, a następnie ponownie wyeksportuj plik. Tryb wypełnienia to reguła interpretowania geometrii; nie pozwala określić dowolnego zestawu niezależnie wybranych obszarów wypełnionych i pustych.

Kiedy należy rozszerzyć obramowanie lub spłaszczyć transformacje?

Użyj polecenia Rozszerz obramowanie, gdy powtarzalny problem dotyczy interpretacji obramowania wektorowego. Affinity opisuje zaznaczenie obiektu narzędziem Przesuwanie lub Węzeł, a następnie wybranie Wektor > Rozszerz obramowanie. Polecenie zamienia granice obramowania w zamknięte krzywe i jest wskazane jako sposób przygotowania obramowań przed eksportem do SVG. Zobacz Rozszerz obramowanie.

Zachowaj oryginał do edycji i przetestuj rozszerzony duplikat. Przed eksportem porównaj końce, połączenia, grubość i ewentualne zamknięte przestrzenie. Rozszerzenie zmienia strukturę obiektu, dlatego pomyślny test powinien zachować zamierzony wygląd i zarazem usunąć problem w aplikacji docelowej.

Istnieją dwa udokumentowane ograniczenia: rozszerzone obramowanie traci możliwość edycji za pomocą pierwotnego narzędzia, a obramowań utworzonych pędzlami pikselowymi nie można rozszerzyć, ponieważ są rastrowe. Rozszerzenie stanowi więc obsługiwaną metodę dla obramowań wektorowych, ale nie zapewnia ogólnej konwersji bitmapy na wektor. Zobacz Rozszerz obramowanie.

W przypadku niezgodności dotyczącej przekształconych obiektów przetestuj osobno opcję Spłaszcz transformacje. Affinity informuje, że opcja ta utrwala w eksportowanym pliku przekształcone obiekty, aby poprawić dokładność wyświetlania w różnych aplikacjach. To test zgodności o konkretnym zastosowaniu, a nie uniwersalna metoda naprawy rozmyć lub wypełnień. Zobacz Ustawienia eksportu.

Sprawdź cały rysunek, zanim zachowasz poprawkę

Gdy wyizolowany obiekt eksportuje się poprawnie, ponów eksport całego dokumentu lub obszaru roboczego zgodnie z zamierzeniem. Sprawdź go przy rzeczywistym rozmiarze wyświetlania i po powiększeniu, zarówno w Safari, jak i w aplikacji docelowej. Skontroluj wcześniej rozmytą krzywą, otwarte obramowania, przezroczyste otwory, nakładające się obszary i otaczającą grafikę.

Zapisz krótko zmianę, która rozwiązała problem: usunięcie niezamierzonego wypełnienia, wybór odpowiedniego trybu wypełnienia, uproszczenie nieobsługiwanego wyglądu, zachowanie fragmentu rastrowego w odpowiedniej rozdzielczości, rozszerzenie obramowania wektorowego lub spłaszczenie transformacji. Dzięki temu można odtworzyć wynik bez traktowania skutecznego ustawienia jako reguły dla każdego rysunku.

Gotowy plik SVG powinien zachować zamierzoną grafikę, a wszelka pozostawiona zawartość rastrowa powinna być zrozumiała i akceptowalna przy wymaganym rozmiarze. Zachowaj edytowalny dokument źródłowy Affinity obok sprawdzonego eksportu, aby późniejsze zmiany można było wprowadzać na podstawie oryginalnych krzywych.

Źródła