Jak uzyskać wysokiej jakości skalowanie diagramów (jak w Firefoksie)?

4

Często muszę zmniejszać obrazy rastrowe składające się z grubych prostych linii i innych grubych krzywych, takich jak ta:

like this one.

Korzystając z GIMP 2.8.16 i różnych opcji interpolacji, aby zmienić rozmiar obrazu do 600 × 600 pikseli kwadratowych, otrzymuję następujące obrazy:

Bez interpolacji

No interpolation

Liniowy

Linear

Sześcienny

Cubic

Sinc (Lanczos3)

Sinc

Teraz porównaj to z wynikiem uzyskanym przez przeglądarkę Firefox:

Firefox 47.0

Firefox

Spójrz na przykład na najwyższą szarą linię. Jeśli porównasz 1 każdy z obrazów wyprodukowanych w GIMP-ie z obrazem uzyskanym ostrożnie przy użyciu Firefoksa, zobaczysz, że w każdym porównaniu linia wygląda znacznie lepiej w obrazie generowanym przez Firefoksa.

Teraz, jak można sobie wyobrazić, używanie przeglądarki internetowej do zmniejszania obrazów nie jest zbyt wygodne, dlatego zastanawiam się, czy jest jakikolwiek edytor obrazów zdolny do zmniejszenia skali obrazów w taki sposób, jak Mozilla Firefox. Wolałbym zrobić prosty sposób partia zmiana rozmiaru.

1 Upewnij się, że Twoja przeglądarka nie stosuje własnej interpolacji podczas przeglądania obrazów. Możesz otworzyć nowe okno przeglądarki i otworzyć w nim dwie karty: jedną z wersją GIMP, a drugą z wersją Firefox. Następnie użyj Ctrl + Tab, aby szybko przełączyć kartę. Dzięki temu różnice będą bardzo oczywiste dla większości ludzkich obserwatorów.

Andreas Rejbrand
źródło
1
Prawdopodobnie otrzymasz więcej informacji zwrotnych na stronie computergraphics.stackexchange
Rob
Zbyt zły GIMP nadal nie ma korekcji gamma w 2016 roku
user23013
Czy próbowałeś tego również w obecnej wersji rozwojowej GIMP?
Michael Schumacher
@MichaelSchumacher: Nie, próbowałem tylko w najnowszej stabilnej wersji.
Andreas Rejbrand

Odpowiedzi:

3

Odkryłem, że ImageMagick 7 daje wynik tak miły, jak ten uzyskany przez Mozilla Firefox:

enter image description here

Aby zmienić rozmiar obrazu za pomocą ImageMagick, użyj polecenia:

magick image.png -resize 600 small.png

To zmieni rozmiar image.png do szerokości 600px, zachowując proporcje i oszczędzając wyjście small.png.

Po kilku próbach i błędach znalazłem nawet sposób na zmianę rozmiaru partii za pomocą cmd.exe w systemie Windows 7. Polecenie:

for %f IN (*.png) DO magick %f -resize 600 scaled/%f

zmieni rozmiar wszystkich obrazów PNG w bieżącym katalogu na szerokość 600 pikseli, zachowując proporcje i umieszczając obrazy wyjściowe w scaled podkatalog.

Andreas Rejbrand
źródło
Czy możesz edytować twoja odpowiedź dodając obraz wygenerowany za pomocą ImageMagic pod Windows? Więc będzie możliwe porównanie. Dzięki.
Hastur
@Hastur: Przepraszam, nie mogę uwierzyć, że zapomniałem pokazać obraz. Aktualizacja za sekundę.
Andreas Rejbrand
Dzięki. Od ciebie ostatnio odkryty Imagemagick, chciałbym cię zaprosić grać z identify ( identify -verbose yourimage.png ). Może dać kilka wskazówek. Oryginalny obraz miał tylko 4 kolory; pozostałe nie są. Firefox dodaje kanał alfa, którego nie ma w IM ... Dzięki tym wskazówkom możesz zacząć grać z opcjami wiersza poleceń (które nie są przemienne!), Aby uzyskać jeszcze lepszy wynik (ale musisz zdefiniować swój lepszy ). Z nie czas obliczeniowy problemy, które mogą Cię zainteresować povray (dla twojego programu).
Hastur
1
Uwaga: GraphicsMagick to widelec ImageMagic, który ma lepszą wydajność i jakość.
harrymc
@harrymc: Ciekawe. Będę o tym pamiętać, jeśli zmęczy mnie ImageMagick.
Andreas Rejbrand
0

Z trudem szukałem dobrego downscale (r), używanego głównie do skalowania zrzutów ekranu aplikacji do dokumentacji internetowej. moje wyniki:

  1. Photoshop : Bad

  2. MS Word : Good Wstaw obraz na dokument, zmień jego rozmiar, zrób zrzut ekranu, zapisz go jako png za pomocą np. Paint.exe. Wyniki są dobre, ale MS nie pozwala kontrolować rozmiaru pikseli (tylko cale lub%).

  3. ReSize.exe (z pakietu RoboHelp): Good Ale nie obsługuje bezpośrednio png; Używam tej metody, teraz konwertując png- & gt; bmp-resize-bmp- & gt; png. To jest mój obecny wybór.

Pat
źródło
Twoja opcja # 2 jest podobna do tego, jak robiłem rzeczy (ale używając Firefoksa), zanim „odkryłem” ImageMagick! Otworzyłem oryginalny PNG w Firefoksie, kliknąłem prawym przyciskiem myszy obraz (element gt), wybrałem „Sprawdź element” i zmieniłem width i height atrybuty lub dodane width:600px i height:600px do lokalnego stylu elementu za pomocą prawego panelu. Następnie użyłem panelu do usunięcia tła strony w kolorze innym niż stałe, zrobiłem zrzut ekranu (za pomocą narzędzia OneNote) obrazu i trochę wypełnienia wokół niego, otworzyłem zrzut ekranu w GIMP, automatycznie przyciąłem go i zapisałem.
Andreas Rejbrand
Powinienem był powiedzieć, że testowałem ImageMagic, ale w moim przypadku (zmniejszając zrzuty ekranu aplikacji Windows) nie wykonał dobrej pracy przy zmniejszaniu wyświetlanego tekstu. Dużo testowałem; dla mnie opcja 3 to ta, która daje mi najlepsze wyniki.
Pat
Mogę sobie wyobrazić pojęcie „najlepiej”, które zależy w dużej mierze od rodzaju grafiki. Jeśli chodzi o tekst, być może ma również znaczenie, czy jest wygładzony. Ponadto na zwykłym zrzucie ekranu znaczna część tekstu składa się prawdopodobnie z linii o szerokości jednego piksela, podczas gdy moje źródła mają bardzo grube linie. (Nie odwołał się.)
Andreas Rejbrand
(Wiem, że nie pomogliście) Chciałem tylko przyczynić się do tej dyskusji z moim doświadczeniem. Zgadzam się z moją koncepcją „najlepszych” wyników, opartą na zrzutach ekranu aplikacji, które składają się głównie z geometrycznych kwadratowych kształtów i tekstu. W twoim przypadku nie zajmujesz się tekstem.
Pat
Myślę, że nadal będę używać ImageMagick, a najlepszy wynik, jaki widziałem na tej stronie, pochodzi z Photoshopa. Wciąż dziękuję i +1 za wysiłek!
Andreas Rejbrand
0

Możesz użyć opcji „bicubic sharper” programu Photoshop

Lub możesz skalować za pomocą interpolacji bicubicznej, a następnie „lekko” wyostrzyć obraz za pomocą gimp lub innego narzędzia

https://docs.gimp.org/en/plug-in-sharpen.html

https://docs.gimp.org/en/gimp-image-scale.html

enter image description here

To jest ostrzejszy bicubic Photoshopa enter image description here

To jest wygładzanie bicubiczne Photoshopa enter image description here

Tak się dzieje, gdy zastosujesz „wyostrzające się krawędzie” Photoshopa, a następnie użyjesz normalnej interpolacji bicubicznej. (Polecam ten). także powiększałem i porównywałem to z wyjściem firefoxa, są bardzo podobne. enter image description here

Uğur Gümüşhan
źródło
Photoshop, nie jest dobry dla zadania bez względu na metodę ponownego próbkowania, której zdecydujesz się użyć, ani przetwarzanie postów, którego możesz użyć do „ulepszenia” rzeczy. Posiadam Adobe „Master Collection CS6”, „eLearning SuiteCS6.1” i „Technical Suite 4”. Nie mają nic dobrego do zmniejszenia rozmiaru obrazu, takiego jak ten przedstawiony tutaj (dobrze ReSize.exe to stara aplikacja RoboHelp należąca do Adobe ale nie obsługuje bezpośrednio PNG).
Pat
@ Nie podoba Ci się najnowszy obraz, który przedstawiłem?
Uğur Gümüşhan
@ UğurGümüşhan: Dziękujemy za obszerny opis opcji oferowanych przez Photoshop. Pierwszy rezultat, którego nie lubię, sinusy są wyraźnie „pikselowane”. Drugi wynik jest jednak prawie nie do odróżnienia od wyniku Firefox / ImageMagick; różnica jest widoczna na środku i po prawej stronie, i nie jestem pewien, ale być może Photoshop wykonuje jeszcze lepszą pracę. Trzeci wynik również wygląda bardzo dobrze, a linie są wyraźnie jaśniejsze (nie przeszkadza mi to).
Andreas Rejbrand
(Ale dlaczego GIMP łączy na górze?)
Andreas Rejbrand
@ AndreasRejbrand w przyszłości, ludzie, którzy znajdą ten post po poszukiwaniu czegoś podobnego, mogą nie mieć dostępu do photoshopa. ludzie mogą również chcieć uzyskać podobne wyniki za pomocą narzędzi wiersza poleceń do automatyzacji, więc staram się mówić ludziom o metodach matematycznych, a nie o tym, co klikać.
Uğur Gümüşhan