Używam CarrierWave::RMagick
do tworzenia miniaturowych obrazów obrazów dla aplikacji Rails i zauważyłem utratę jakości, gdy obrazy są zmniejszane. Jest to zrozumiałe do pewnego stopnia, ponieważ mamy mniej pikseli w zmniejszonym obrazie, a tym samym mniejszej jakości, ale oczekuję lepszej jakości. Pokażę wam przykład:Utrata jakości obrazu PNG następujący po CarrierWave :: RMagick resize_to_fit
Od lewej do prawej, pierwszy z nich jest oryginalna (100x105), drugi jest Bicubic Resize Photoshop (95x100), a trzecia jest wynikiem RMagick's resize_to_fit
(95x100).
W tym przykładzie obraz oryginalny jest tylko nieznacznie większy niż żądana miniatura, ale zasadniczo zmuszam każdą miniaturę do maksimum 100x100. Mam nadzieję, że widzisz różnicę między zmniejszonymi obrazami. Porównanie jakości Photoshopa z jakością RMagick może być głupie, ale nawet pomniejszanie w Chrome, aby obrazy były mniejsze, zapewnia lepszą jakość obrazu.
Ja w zasadzie za pomocą tego w klasie uploader CarrierWave:
version :thumb do
process :resize_to_fit => [100, 100]
end
Wszelkie pomysły, w jaki sposób można poprawić jakość obrazu? lub czy są jakieś alternatywy dla RMagick, które mogą zrobić lepiej?
EDYCJA: Próbowałem this, ale to nie miało żadnego znaczenia. Pomyślałem, że tak było w przypadku obrazów JPEG.
Czy kiedykolwiek to rozgryzłeś? – cman77
Nie, nigdy nie. Nie mogłem też znaleźć lepszego rozwiązania, więc zniosłem to :) – Merott
jpg pomoże niektórym obrazom przy użyciu wielu gradientów. Podejrzewam jednak, że problem dotyczy starzejących się algorytmów RMagick używanych do skalowania. W programie Photoshop wyniki są różne, uważam, że jest to przyczyną. Alternatywą dla RMagicka jest Jimp, ale jest zupełnie inny i nie jest stworzony dla szyn. – Eddie