Jak zmniejszyć rozmiar obrazu bez pikselacji?

13

Widzę wiele gier z gładkimi krawędziami i obrazami o wysokiej rozdzielczości, ale kiedy próbuję zmniejszyć obrazy, by powiedzieć mojej postaci 64x64, dostaję piksele. nawet jeśli zacznę od płótna 64 x 64, otrzymam pikselowane krawędzie.

Czy powinienem skalować z OpenGL? a może jest jakaś technika z Photoshopem lub Pixsem, o której nie wiem?

Rhys
źródło
1
czy możesz podać wizualny przykład?
tigrou
4
Z twojego opisu wydaje się, że używany algorytm skalowania dokonuje interpolacji z dokładnością do najbliższego piksela, a nie płynniejszej interpolacji Lanczosa. Czy to pytanie o zmniejszenie grafiki wektorowej jest pomocne?
Anko
Tak, przydatna jest odpowiedź na skalowanie wektorowe. Dziękuję za to.
Rhys

Odpowiedzi:

27

Wygląda na to, że używany algorytm skalowania nie interpoluje pikseli.

Zdjęcia najlepiej wyjaśnić za pomocą zdjęć:

skalowanie obrazu z różnymi interpolacjami

Jest to Major , najpierw w całości, a następnie zmniejszany za pomocą Lanczosa (po lewej) i najbliższego piksela (aka bez interpolacji) (po prawej) do dwóch rozmiarów.

To samo porównanie, w powiększeniu 3x:

Widok Szczegółowy

Upewnij się, że skalowanie, którego używasz, to rozsądne ponowne próbkowanie. Na przykład ImageMagick ma -filter Lanczosopcję.

Nie musi to być nawet fantazyjne Lanczos, na wypadek, gdyby twoje narzędzia nie mogły tego zrobić; sześcienny (skrajnie lewy) wygląda dla mnie tak samo:

sześcienny po lewej stronie

Anko
źródło
1
Dziękujemy za poświęcenie czasu na udzielenie odpowiedzi i pokazanie przykładowych zdjęć. Bardzo mile widziane.
Rhys