jak zrasteryzować plik SVG bez wygładzania

21

Zrobiłem mapę w inkscape i teraz muszę ją zmienić na mapę bitową lub .png. Mapa zostanie zinterpretowana przez program komputerowy, który będzie szukał dokładnych kolorów, więc krawędzie muszą być ostre. kiedy eksportuję plik .png za pomocą programu inkscape, używam konwertera plików online lub nawet wykonuję zrzut ekranu, zawsze jest on wygładzany. Wsparcie.wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

William W.
źródło
Hmm ... nie wygląda na to, że Inkscape oferuje opcję aliasu podczas eksportowania do rastra. Możesz spróbować otworzyć SVG w aplikacji rastrowej (takiej jak PS) i sprawdzić, czy oferuje tam opcję aliasu.
DA01
Photoshop 7.0, który mam, nie ma możliwości otwierania plików SVG. Nie mam żadnych innych programów, które mogłyby to zrobić. jeśli są jakieś darmowe, które mogą działać, jestem zainteresowany tym, czym są.
William W
Jeśli chodzi o aplikacje rastrowe, GIMP jest oprogramowaniem typu open source. Paint.net jest darmowy. Nie jestem jednak pewien, czy któreś z nich obsługuje otwieranie SVG.
DA01
Wygląda na to, że można to zrobić w przeglądarce: stackoverflow.com/questions/16889078/...
DA01
Aha, wreszcie ... jednym z obejść może być zrobienie zrzutu ekranu, umieszczenie go w PhotoShop, a następnie użycie filtru / narzędzia „Posterize” PhotoShop, aby zredukować paletę kolorów do tylko jednolitych kolorów, których chcesz użyć.
DA01

Odpowiedzi:

17

Wersja programowa Inkscape (nadchodząca wersja 0.91) ma globalny przełącznik wygładzania w oknie Właściwości dokumentu, który powinien również działać podczas eksportu. Poszukaj „Wersji programistycznych” na stronie pobierania:

http://www.inkscape.org/en/download/

Krzysztof Kosiński
źródło
dzięki, czy wiesz jak długo to wyjdzie? Nie widziałem tego na stronie.
William W
Obecna faza to „Frost”. Postęp w kierunku wydania można zobaczyć tutaj: inkscape.org/en/develop/next-release Myślę, że powinien zostać wydany w ciągu najbliższych 5 miesięcy.
Krzysztof Kosiński
Łał. Skaczą z 0,48 do 0,91! To prawda, to mniej niż połowa wersji, ale wciąż ogromna aktualizacja w świecie Inkscape. Wersja 1.0 nadchodzimy!
DA01
5
Niestety nie ma to wpływu na eksport ...
Ray
Nie działało również dla mnie podczas eksportowania jako plik PNG.
testowanie
12

Jednym prostym rozwiązaniem jest wyeksportowanie do pliku PDF, a następnie użycie Ghostcript na wynikowym pliku PDF. Używanie obrazu truskawki z Openclipart i polecenia

gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m \
   -r72 -dGraphicsAlphaBits=1 \
   -sOutputFile=image.png image.pdf 

Otrzymuję następujący wynik.

Truskawkowy nieagializowany obraz. Powiększony obraz truskawek bez antyializacji.

Jeśli obraz zawiera także tekst, musisz również dodać -dTextAlphaBits=1. Zmień na -r72inną wartość, aby przeskalować obraz.

Karl Ove Hufthammer
źródło
2
Jest to z pewnością rondo, ale jeśli to nie zadziała, to goshdang.
obskyr
11

Inkscape 0.91 i nowszy ma możliwość przełączania antyaliasingu. Można to uzyskać w oknie Właściwości dokumentu (Shift + Ctrl + D). Po włączeniu, co jest ustawieniem domyślnym, ten obraz tablicy trójkątów wygląda następująco.

wprowadź opis zdjęcia tutaj

Po wyłączeniu obraz wygląda na płynniejszy.

wprowadź opis zdjęcia tutaj

Jak wspomnieli inni, obecnie nie ma to wpływu na eksport png. Wygładzanie jest nadal włączone, a przerwy między trójkątami są nadal widoczne.

To, co robi Inkscape po wyłączeniu antyaliasingu, dodaje shape-rendering="crispEdges"do pliku. Otwórz plik SVG w edytorze tekstów i spójrz gdzieś wokół linii 19 i powinieneś go zobaczyć.

wprowadź opis zdjęcia tutaj

Na szczęście ten tag jest czytany i przestrzegany podczas importowania SVG do GIMP. GIMP może zaimportować plik SVG i ustawić rozdzielczość importu, co oznacza, że ​​możesz skalować plik png podczas importowania, aby uzyskać pożądany rozmiar. Przytnie go do granic strony.

wprowadź opis zdjęcia tutaj

Możesz teraz zapisać obraz, a wygładzanie krawędzi zostanie wyłączone.

wprowadź opis zdjęcia tutaj

Ten błąd został zgłoszony kilka razy jako błąd:

hellocatfood
źródło
1
Idealne wyjaśnienie! Na ilustracji ukośny lub okrągły kształt sprawiłby, że efekt byłby znacznie bardziej widoczny.
Max N
Odkryłem, że ładowanie w GIMP nie działa, chyba że wyśledzę każde wystąpienie shape-rendering:autow SVG i przekonwertuję go crispEdges. Okazuje się, że wiele ścieżek (może wszystkie) miało :autospecyfikację w swoim stylu.
Mutant Bob
2

Możesz także użyć shape-renderingwłaściwości SVG, aby krawędzie były wyraźne.

W SVG XML, który wygląda następująco:

<svg:something shape-rendering="crispEdges" ... />

W interfejsie użytkownika Inkscape możesz to ustawić ręcznie za pomocą edytora XML ( Ctrl+ Shift+ X), jak pokazano na tym zrzucie ekranu:

Edytor XML Inkscape

Wybierz węzeł, do którego właściwość ma mieć zastosowanie. Tutaj stosuję to do grupy ścieżek. Właściwość jest wyświetlana po prawej stronie. Aby go dodać, skopiuj tekst widoczny w prawym dolnym rogu, a następnie naciśnij Set.

Drew Noakes
źródło