PerfectVector
Autor: Irene Kim

Ramka EPS: przycięta grafika i nadmiar pustego miejsca

Rozpoznaj przyczyny przycięcia EPS i nadmiernych marginesów: porównaj deklarowane granice z rysunkiem, wyeksportuj ponownie i sprawdź wynik u odbiorcy.

8 min czytania
Na tej stronie

Jeśli w EPS brakuje części logo lub plik trafia do odbiorcy z nadmiarem pustego miejsca, porównaj zadeklarowaną ramkę ograniczającą z faktycznie rysowaną grafiką. Proces odbiorczy korzystający ze zbyt małej ramki może przyciąć istniejące elementy; za duża ramka może pozostawić niechciane marginesy. Ponowny eksport z edytowalnego wzorca jest zwykle najczytelniejszą naprawą. Powiększenie deklaracji nie odtworzy grafiki, której nigdy nie zapisano lub którą nadal wyklucza ścieżka przycinająca.

Zacznij od oryginalnego EPS, kompletnego wzoru wizualnego i wymagań aplikacji odbiorcy. Zachowaj oryginał i przetestuj zamiennik pod osobną nazwą, aby porównać rzeczywisty rezultat dostarczenia.

Odczytaj poprawnie cztery współrzędne

Ramka ograniczająca EPS opisuje prostokąt obejmujący narysowane elementy. W tym nagłówku:

%%BoundingBox: 20 15 101 66

20 15 to lewy dolny narożnik, a 101 66 to prawy górny narożnik. Szerokość wynosi 101 − 20 = 81 punktów, a wysokość 66 − 15 = 51 punktów. Dwie ostatnie liczby są współrzędnymi, a nie szerokością i wysokością. Niezerowy lewy dolny narożnik jest prawidłowy.

Specyfikacja Adobe EPSF 3.0 definiuje ramkę wokół narysowanych elementów, uwzględniając zasięg obrysu i łączenia linii. Sama oś ścieżki może więc zaniżać potrzebne granice. Specyfikacja Adobe DSC 3.0 wymaga całkowitych argumentów %%BoundingBox.

Poglądowa grafika liścia z wąską złotą ramką pomijającą czubek oraz większą turkusową ramką zawierającą dodatkowe puste miejsce
Ilustracja poglądowa: grafika i jej zadeklarowana ramka to osobne rzeczy.

Dopasuj objaw do kolejnego sprawdzenia

ObjawMożliwa przyczynaPrzydatna kontrola
Ostra prostokątna krawędź przecina znakZadeklarowane przycięcie lub ramka odbiorcy są za małePorównaj deklarację, zapisany zasięg rysunku i ustawienia przycięcia u odbiorcy
Kompletny znak znajduje się wewnątrz dużych marginesówZa duże zadeklarowane granice lub dodatkowa narysowana zawartośćSprawdź całe źródło i rzeczywisty prostokąt umieszczenia
Obrys jest ścięty przy poza tym poprawnej krawędziGranice mogą pomijać namalowany zasięg obrysuPrzelicz granice z pełnego wyglądu w aplikacji źródłowej
Miniatura różni się od wyniku umieszczeniaPodgląd i renderowana grafika mogą być różnymi reprezentacjamiPorównaj nowy rendering i rzeczywisty wynik w aplikacji docelowej
Większa deklaracja nadal nie przywraca grafikiBrak danych rysunku lub zastosowana ścieżka przycinającaWróć do kompletnego edytowalnego wzorca i sprawdź sam rysunek

Biały margines wymaga też osobnego sprawdzenia tła. Może być pustą przestrzenią wokół grafiki, rzeczywistym białym obiektem albo zawartością rastrową. Diagnoza tła EPS omawia tę różnicę; zmiana granic nie potwierdza przezroczystości.

Ten sam rysunek, cztery różne deklaracje granic

Utworzyliśmy cztery pliki EPS z identycznym bajtowo programem rysującym: turkusowy prostokąt, ciemny trójkąt z białym okrągłym detalem oraz pomarańczowy pasek przy prawej krawędzi. Ponowne odczytanie zapisanych poleceń potwierdziło w każdym pliku te same zewnętrzne granice rysunku:

lower-left:  (20.25, 15.5)
upper-right: (100.75, 65.25)

Zmieniono wyłącznie komentarze granic. Wszystkie cztery nagłówki deklarowały PostScript LanguageLevel 2. Ghostscript 10.08.0 wyrenderował rzeczywiście zapisane pliki przy użyciu png16m, -dEPSCrop i 288 dpi, co w tym badaniu dawało cztery piksele na punkt.

DeklaracjaRzeczywiste wymiary PNGZaobserwowany wynik
%%BoundingBox: 20 15 101 66324 × 204Kompletny znak z małymi marginesami zaokrąglenia do liczb całkowitych
%%BoundingBox: 20 15 60 66160 × 204Przycięta prawa strona trójkąta; pomarańczowy pasek poza renderingiem
%%BoundingBox: 0 0 120 80480 × 320Kompletny znak ze znacznym białym wypełnieniem wokół
Ta sama obejmująca ramka całkowita oraz ułamkowe granice HiRes322 × 199Kompletny znak bez marginesów zaokrąglenia w tym rendererze

W ostatnim wierszu dodatkowy komentarz brzmiał:

%%HiResBoundingBox: 20.25 15.5 100.75 65.25

HiResBoundingBox podaje tu granice ułamkowe. Obserwowane przycięcie w tym uruchomieniu Ghostscript odpowiadało tym wartościom. Nie oznacza to, że każdy importer EPS przyznaje komentarzowi taki sam priorytet. Nie przypisujemy tego rozszerzenia specyfikacji DSC 3.0.

Wyniki 324 × 204 i 322 × 199 oznaczają różne wymiary przycięcia, a nie różną skalę grafiki. Zadeklarowany prostokąt całkowity 81 × 51 punktów obejmuje narysowany prostokąt 80,5 × 49,75 punktu. Margines wynikający z zaokrąglenia jest w tym kontrolowanym pliku oczekiwany.

Kontrola pikseli wykryła pomarańczowy pasek w kompletnych renderingach; jego znane położenie znajdowało się poza za małym renderingiem. Osobny przebieg Ghostscript bbox bez przycinania EPS zgłosił te same granice rysunku dla wszystkich czterech plików, zgodne z zapisanym prostokątem obejmującym. Potwierdza to usterkę tego przykładu: przycięty rendering utracił widoczność elementów, choć zapisane polecenia rysowania nadal istniały.

Za mała i za duża deklaracja są celowo błędnymi wariantami kontrolnymi. Badanie obejmuje jeden renderer i prostą geometrię z wypełnieniami. Nie sugeruje wyniku importu do aplikacji, podglądu EPS, fizycznego druku ani konwersji w PerfectVector.

Rozpoznaj przyczynę, napraw i sprawdź zamiennik

1. Oddziel deklarację od rysunku

Porównaj kompletny wzór z rzeczywiście renderowaną zawartością pliku. Jeśli możesz odczytać tekstowy nagłówek EPS, sprawdź obie deklaracje granic, gdy występują. Nie zakładaj, że dowolny plik da się zmierzyć przez wyszukiwanie liczb współrzędnych: rzeczywisty PostScript może korzystać z transformacji, procedur, tekstu, obrazów i przycinania.

Do technicznego sprawdzenia renderingu po zainstalowaniu Ghostscript można użyć przetestowanego wzorca polecenia:

gs -dSAFER -dBATCH -dNOPAUSE \
  -sDEVICE=png16m -r288 -dEPSCrop \
  -sOutputFile=eps-check.png artwork.eps

Zapisuje on PNG do kontroli; nie naprawia ani nie zastępuje EPS. Dokumentacja użycia Ghostscript opisuje -dEPSCrop jako przycinanie EPS do ramki ograniczającej.

Jeśli potrzebny jest osobny pomiar zasięgu znaków, odróżnij go od przyciętego renderingu. Dokumentacja urządzenia bbox wyjaśnia, że wynik zależy od rozdzielczości rastrowania i zaokrągleń oraz domyślnie pomija białe obiekty. Zmierzony zasięg niebiałych elementów nie stanowi więc automatycznie kompletnej ramki produkcyjnej, zwłaszcza dla celowej białej grafiki.

2. Napraw przyczynę w edytowalnym wzorcu

Jeśli granice wykluczają istniejącą grafikę, ponownie wyeksportuj zamierzoną kompletną grafikę z obejmującą ją ramką. Uwzględnij widoczny zasięg obrysu. Jeśli marginesy są zbyt duże, przed zmianą obszaru eksportu sprawdź, czy zbędne lub celowo narysowane obiekty nie rozszerzają rzeczywistej zawartości.

Użyj udokumentowanych ustawień zapisu EPS w aplikacji źródłowej i potwierdź właściwy obszar roboczy lub zakres. Poradnik zapisu w Adobe Illustrator opisuje zapis EPS, wybór obszaru roboczego i osobną opcję obrazu podglądu. Są to udokumentowane ustawienia; nasze badanie nie obejmowało eksportu z Illustratora ani nie ustalało jego zachowania podczas importu.

Jeśli brakującej zawartości nie ma w zapisanym rysunku lub wyklucza ją ścieżka przycinająca, popraw ten problem w źródle i ponownie wyeksportuj plik. Zmiana komentarza nie dostarcza brakujących poleceń ścieżek ani nie zmienia operacji przycinania. Gdy wzorzec jest niedostępny, poproś o kompletne źródło lub poprawiony eksport zamiast akceptować powiększoną pustą ramkę.

3. Sprawdź dokładnie ten plik, którego użyje odbiorca

Wyrenderuj zamiennik i porównaj ze wzorem kompletną sylwetkę, cienkie zakończenia obrysów, wewnętrzne białe detale i zamierzone marginesy. Potwierdź wymiary z różnic współrzędnych. Następnie umieść lub zaimportuj ten sam zamiennik w rzeczywistym procesie odbiorcy i sprawdź przycięcie oraz skalę.

Jeśli rendering jest kompletny, ale umieszczenie nadal przycina grafikę, sprawdź ramkę, ustawienia importu i obsługę pliku w aplikacji docelowej. Jeśli oba wyniki pozostają niekompletne, wróć do zawartości źródłowej i przycinania. Zachowaj zamiennik osobno, aż zawartość i wynik u odbiorcy spełnią wymagania.

Pomyślne sprawdzenie granic nie mówi nic o tym, czy plik zawiera edytowalne ścieżki, czy osadzoną bitmapę. Służy do tego poradnik sprawdzania struktury EPS. Ramka ograniczająca SVG to inny system; jej pomiary DOM nie zastępują interpretacji komentarzy i rysunku EPS.

Jak wygląda to w PerfectVector

Jeśli pozostało tylko kompletne płaskie logo rastrowe, a nieprzezroczyste tło EPS pasuje do zadania, odtwórz widoczne kształty w procesie obraz–EPS w PerfectVector. Porównaj odtworzoną sylwetkę, liternictwo i otwory ze wzorem, a następnie sprawdź cały wyeksportowany EPS i jego wymiary w procesie odbiorcy.

Obecny wynik wykorzystuje płaskie wypełnione ścieżki na nieprzezroczystym białym lub czarnym tle. Przygotowuje to wstępną wersję grafiki; nie naprawia dowolnego nagłówka EPS, nie odtwarza niewidocznych braków ani nie poświadcza przycięcia u odbiorcy. Jeśli istnieje edytowalny wzorzec wektorowy, popraw go i wyeksportuj ponownie.

FAQ

Czy ramka ograniczająca EPS musi zaczynać się od zera?

Nie. Lewa dolna współrzędna może być niezerowa. Szerokość i wysokość wynikają z odjęcia dolnych współrzędnych od górnych. Nasza obejmująca ramka całkowita zaczyna się w (20, 15) i opisuje prostokąt 81 × 51 punktów bez przesuwania poleceń rysowania.

Czy większy BoundingBox może przywrócić przyciętą grafikę?

Może zmienić widoczny obszar, jeśli rysunek nadal istnieje, a proces odbiorcy korzysta z tej deklaracji. Nie odtworzy brakujących poleceń rysowania ani nie cofnie ścieżki przycinającej. Popraw kompletny wzorzec, ponownie wyeksportuj plik i sprawdź rzeczywistą aplikację docelową.

Czy HiResBoundingBox zawsze usunie dodatkowe marginesy?

Nie ustalamy tu uniwersalnego zachowania. Ghostscript 10.08.0 użył granic ułamkowych w naszym kontrolowanym uruchomieniu, tworząc 322 × 199 pikseli zamiast 324 × 204 dla obejmującej ramki całkowitej. Potwierdź zachowanie rzeczywistego importera i zachowaj prawidłową obejmującą deklarację całkowitą.

Źródła

  1. Adobe — Specyfikacja EPSF 3.0 — Definiuje dolne lewe i górne prawe granice narysowanych elementów, z zasięgiem obrysów i łączeniami.
  2. Adobe — Specyfikacja DSC 3.0 — Definiuje całkowite argumenty współrzędnych komentarza BoundingBox.
  3. Ghostscript — Parametry EPS — Opisuje EPSCrop i powiązane ustawienia przetwarzania EPS.
  4. Ghostscript — Wynik ramki ograniczającej — Opisuje pomiar bbox, obsługę białych obiektów oraz ograniczenia rozdzielczości i zaokrągleń.
  5. Adobe — Zapisywanie grafiki — Opisuje eksport EPS, wybór obszaru roboczego i odrębną opcję obrazu podglądu.

Zaczynasz od kompletnego logo rastrowego i akceptujesz nieprzezroczyste tło? Utwórz wstępną wersję EPS z obrazu, porównaj ścieżki ze wzorem, a następnie sprawdź całą wyeksportowaną grafikę, wymiary i przycięcie w procesie odbiorcy.

Więcej z bloga

PerfectVector

Zamień plik obrazu w
edytowalny SVG

Bez karty kredytowej