PerfectVector
Autor: Irene Kim

Usuń cień logo przed jego wektoryzacją

Usuń zauważalny cień ze spłaszczonego logo na kopii. Przetestuj maskę, chroń słabe szczegóły i rozpoznaj, kiedy potrzebny jest oryginał lub przerysowanie.

8 min czytania
Na tej stronie

Usuń cień logo przed wektoryzacją, uzyskując, jeśli to możliwe, płaski oryginał. Jeśli masz tylko spłaszczony raster, sprawdź, czy zamierzony znak da się oddzielić od cienia jego tonami. Ciemny znak na jaśniejszym cieniu może pozwolić na użyteczną maskę; dopasowanie tonów i słaba grafika mogą sprawić, że to samo czyszczenie będzie destrukcyjne.

Nie traktuj najczystszej sylwetki jako dowodu na odzyskanie logo. Porównaj otwory, narożniki, cienkie detale i kontur zewnętrzny z zatwierdzonymi wzorcami. Gdy zamierzona granica jest zasłonięta, poszukaj oryginału lub celowo przerysuj, zamiast akceptować odgadnięty kształt.

Próg oddziela tony, a nie intencje

Zachowaj spłaszczony plik nietknięty. Przetestuj duplikat, sprawdź każdy zamierzony szczegół i odrzuć maskę, jeśli usuwa grafikę lub zachowuje cień. Poniższy udany przykład wykorzystuje celowo rozdzielone tony; jego odcięcie nie jest uniwersalnym ustawieniem logo.

Wypróbuj na własnym obrazie
Otwórz pełne narzędzie
Za darmo i bez rejestracji: upuść obraz, aby zobaczyć podgląd swojego wektora.

Najpierw sprawdź, czy cień nadal jest efektem

Jeśli edytowalne źródło nadal zawiera cień jako oddzielny efekt lub obiekt, poproś o płaski eksport z tego źródła. Usunięcie efektu pozwala uniknąć rekonstrukcji znaku z mieszanych pikseli. W tym artykule nie testowano kontroli efektów żadnej aplikacji.

Spłaszczony plik PNG lub JPG jest inny: znak, cień i tło mogą już być połączone w obraz. Wymazanie miękkiego szarego obszaru nie ujawnia ukrytego pod nim nieskazitelnego konturu. Aby uzyskać gładkie cieniowanie należące do kompozycji, a nie niepożądany efekt, zobacz oddzielny opis procesu wektoryzacji gradientu.

Zdiagnozuj znak przed wybraniem odcięcia

Próg klasyfikuje piksele według wybranej wartości. Maska wykorzystuje te decyzje do zachowania lub ukrycia części obrazu. Trasa maski jasności utrzymuje tutaj ciemne piksele i ukrywa jaśniejsze; nie wie, które piksele są logo, a które cieniem.

Stan źródłowyMożliwa trasaPowód odrzucenia wyniku
Ciemny płaski ślad i wyraźnie jaśniejszy cieńPrzetestuj maskę jasności na duplikacieNarożniki kurczą się, dziury ulegają zmianie lub znikają blade detale
Zaznaczanie i cień dzielą się tonamiPoszukaj oryginalnej grafiki lub przerysujJedno odcięcie nie pozwala na rozróżnienie pasujących wartości według zamiaru
Light litery lub kolorowe akcenty towarzyszą ciemnemu znakowiChroń te dane osobno lub użyj innej metodyZaznaczenie ciemnych pikseli całego obrazu może je usunąć
Zatwierdzony kontur jest ukryty lub niejednoznacznyUzyskaj lepsze referencjeWiarygodny zarys nie potwierdza pierwotnego kształtu

Użyj odczytu wartości pikseli w edytorze obrazów, aby porównać wyraźny znak, wyraźny cień i najsłabsze potrzebne szczegóły. Wartości skali szarości w przykładzie wahają się od 0 dla czerni do 255 dla bieli. Próbuj w kilku miejscach; pojedynczy ciemny kąt nie świadczy wszędzie o separacji.

Przetestuj maskę ciemnych pikseli na kopii roboczej

Ten przykład wykonywalny wymaga Python 3 i Pillow. Testowaliśmy z Pillow 11.3.0. Użyj nieprzezroczystej kopii roboczej RGB o nazwie logo-flat.png, zachowaj oryginał i wybierz nieużywane nazwy wyjściowe. Ta trasa prowadzi do znaku, który powinien zachować swoje ciemne kształty; może odrzucić legalne jasne lub kolorowe dzieła sztuki.

  1. Zapisz to jako mask-dark-mark.py. Pillow Odniesienie do obrazu dokumentuje mapowanie wartości za pomocą point i zastosowanie kanału alfa za pomocą putalpha:
from pathlib import Path
from PIL import Image
import sys
 
source = Path(sys.argv[1])
output = Path(sys.argv[2])
cutoff = int(sys.argv[3])
mask_path = output.with_name(output.stem + "-mask.png")
if not 0 <= cutoff <= 255:
    raise SystemExit("Use a cutoff from 0 to 255.")
if output.exists() or mask_path.exists():
    raise SystemExit("Choose new output names to preserve existing files.")
image = Image.open(source).convert("RGB")
mask = image.convert("L").point(lambda value: 255 if value < cutoff else 0)
result = image.convert("RGBA")
result.putalpha(mask)
mask.save(mask_path)
result.save(output)
  1. Uruchom test. W przypadku kontrolowanego źródła poniżej użyliśmy:
python3 mask-dark-mark.py logo-flat.png logo-cleaned.png 100

Dzięki temu piksele, których wartość w skali szarości jest mniejsza niż 100. Zapisuje logo-cleaned-mask.png, gdzie biały oznacza zachowanie, oraz logo-cleaned.png, który zachowuje zachowane kolory źródłowe z binarną przezroczystością. Pozostawia źródło robocze niezmienione.

  1. Sprawdź oba pliki. Maska ułatwia identyfikację brakujących elementów i zachowanego cienia. Zobacz przezroczysty wynik na jasnym i ciemnym tle, tak aby biała przestrzeń wyświetlacza nie zakrywała zmienionego otworu lub krawędzi. Zamiast nadpisywać porównanie, użyj innej nazwy wyjściowej dla każdego testu.
  2. Zaakceptuj lub zatrzymaj. Zmień wartość odcięcia tylko porównując z zamierzonym znacznikiem. Jeśli żadne ustawienie nie zachowuje kompozycji bez cienia, ta metoda jasności całego obrazu jest nieodpowiednia. Selektywny retusz może pomóc w rozpoznaniu wady miejscowej; nieznany kontur wymaga oryginalnego lub celowego przerysowania.

Zamiast tego użyj edytora graficznego

GIMP dokumentuje Próg jako czarno-białą operację, która może pomóc w tworzeniu masek zaznaczenia. Jego instrukcja ostrzega również, że progowanie usuwa antyaliasing. Maska warstwy kontroluje, które części pozostaną widoczne.

Są to alternatywy oparte na dokumentacji, a nie testowany tutaj natywny przewodnik GIMP. Naszą wykonaną trasą jest skrypt Pillow. Twarda maska ​​nie zachowuje miękkich przejść krawędzi dowolnej grafiki źródłowej; wybierz selektywny lub ręcznie przebudowany kontur, jeśli te przejścia mają znaczenie.

Co pokazały oryginalne kontrole

Stworzyliśmy płaski znak 640 × 460, dodaliśmy przesunięcie rozmytego cienia 32 pikseli w prawo i 26 w dół i spłaszczyliśmy wynik na biało. Znak był szary 22, podczas gdy każdy piksel poza jego znaną obsługą miał wartość pomiędzy 163 a 255. Wartość odcięcia wynosząca 100 utworzyła dokładnie zapisaną maskę znaczników: zero dodatkowych zachowanych pikseli i zero brakujących pikseli znaczników.

Wynik ten zależy od znanego, binarnego sterowania cyfrowego. Nie zapewnia dokładnego odzyskania nieznanego logo, zachowania wygładzonych krawędzi ani funkcji usuwania cieni PerfectVector.

Rzeczywiste maski progowe i kontrola awarii
Preview wyświetlający oryginalny spłaszczony ciemny znak z jaśniejszym cieniem, jego zaakceptowaną sylwetkę i elementy sterujące o tym samym tonie, gdzie dolna wartość odcięcia traci ślad, a wyższa wartość odcięcia zachowuje cień
Oddzielne tony dają zamierzoną maskę. Dzięki dopasowaniu odcieni znaczników i cieni jedno odcięcie traci ślad, a drugie zatrzymuje niechciany cień.

Dwie kolejne kontrole pokazują, dlaczego inspekcja ma znaczenie:

  • Pasujące odcienie: wykonaliśmy znak i przesunęliśmy cień w kolorze szarego 150. Odcięcie 100 usunęło wszystkie zamierzone piksele znaczników 54,527. Podniesienie go do 180 utrzymało znak, ale także 16,128 niepożądane piksele cienia. Nakładanie się nie rozróżniało już zamierzonych granic na podstawie jasności.
  • Niewielki szczegół: dodaliśmy zamierzoną jednopikselową linię w kolorze szarym 185. Odcięcie 100 usunęło wszystkie 391 pikseli tego szczegółu, mimo że główny ciemny znak pozostał nienaruszony.

Są to zmierzone awarie wybranych masek, a nie zalecenie dalszego podnoszenia wartości odcięcia. Wejścia i wyjścia to oryginalne cyfrowe elementy sterujące, bez natywnego edytora obrazów lub testu konwersji PerfectVector.

Przed rozpoczęciem śledzenia sprawdź kontur

Sprawdź zapisane czyszczenie w stosunku do nietkniętego źródła i zatwierdzonego płaskiego odniesienia, jeśli jest dostępne:

  • Zewnętrzny kontur nie ma przyciętego narożnika, spuchniętego obszaru ani brakującego przedłużenia.
  • Liczniki i zamknięte otwory zachowują swój zamierzony kształt i pozostają otwarte.
  • Cienkie linie, jasne akcenty i małe litery przetrwają tam, gdzie ich miejsce.
  • Przesunięty cień nie pozostaje drugą sylwetką, pierścieniem, naszywką czy miękką grzywką.

Jeśli szczegół zniknie, wróć do źródła. Przywróć go, celowo zaznaczając lub przerysowując, zamiast zakładać, że był częścią cienia. Jeśli nie możesz rozróżnić ukrytej granicy, przestań domagać się odzyskania i poproś o oryginalny projekt. przewodnik po wektoryzacji logo omawia wybór automatycznego śledzenia w porównaniu z ręczną przebudową.

Usunięcie cienia i uczynienie tła przezroczystym to osobne decyzje o akceptacji. Sprawdź rzeczywistą przezroczystość i pozostałe obiekty zgodnie z opisem w przewodniku SVG dotyczącym przezroczystego tła; sam biały podgląd nie dowodzi braku niepożądanych pikseli.

Śledź zaakceptowany znak za pomocą PerfectVector

PerfectVector pasuje, gdy masz zaakceptowane płaskie logo rastrowe, którego widoczne kształty mają być edytowalnymi ścieżkami. Użyj wektoryzatora logo z tym źródłem, a następnie sprawdź, czy podgląd ma ten sam zatwierdzony kontur, otwory i drobne szczegóły.

To czyszczenie źródła odbywa się przed wektoryzacją. Ten przepływ pracy podejmuje decyzję o usunięciu cienia w masce źródłowej; podgląd wektorowy nie sprawdza, które piksele miały służyć jako znak. Jeśli na podglądzie widać pozostałości kształtu cienia lub brakujące szczegóły, wróć do rastra, zamiast traktować ślad jako dowód oryginalnego logo. Edycja i eksport wyniku wymagają jego odblokowania; chroniony podgląd jest przeznaczony tylko do przeglądania.

Często zadawane pytania

Czy próg zawsze może usunąć cień logo? Nie. Działa tylko wtedy, gdy zachowane wartości odróżniają zamierzony znak od niepożądanych pikseli. Dopasowane nakładanie się tonów i słabe szczegóły mogą sprawić, że próg całego obrazu będzie nieodpowiedni.

Czy usunięcie cienia odsłoni oryginalny kontur? Nie jest to niezawodne, gdy zasłaniają je spłaszczone piksele. Porównaj z zatwierdzonym referencją, uzyskaj oryginalny projekt lub przerysuj celowo, zamiast traktować wiarygodną granicę jako odzyskany fakt.

Dlaczego drobne szczegóły zniknęły, a główny znak pozostał? Mogą być lżejsze niż zachowuje to odcięcie. W naszym teście ciemny znak przetrwał, ale szara linia 185 utraciła wszystkie 391 pikseli. Wróć do źródła i osobno chroń szczegóły zamierzonego światła.

Źródła

  1. Pillow — Moduł obrazu — Dokumentuje operacje mapowania wartości i kanału alfa wykorzystywane przez testowany skrypt.
  2. GIMP — Próg — Definiuje próg binarny, użycie maski wyboru i ograniczenie antyaliasingu.
  3. GIMP — Dodaj maski warstw — objaśnia maski kontrolujące widoczne i przezroczyste części warstwy.

Kiedy płaski znak przejdzie kontrolę konturu, zacznij od tego logo. Przed użyciem wyniku sprawdź dziury, rogi i słabe szczegóły podglądu wektorowego w stosunku do zaakceptowanego źródła.

Więcej z bloga

PerfectVector

Zamień logo lub grafikę w
czysty, edytowalny SVG

Wektoryzuj i sprawdzaj podgląd za darmo, bez dziennego limitu.