Używam RMagick i chcę, aby moje obrazy były przeskalowane do stałej szerokości 100 pikseli i skalowały wysokość proporcjonalnie. Na przykład, jeśli użytkownik miałby przesłać 300x900px, chciałbym go przeskalować do rozmiaru 100x300px.Carrierwave - zmiana rozmiaru obrazów na ustaloną szerokość
Odpowiedz
Wystarczy umieścić to w pliku uploader:
class ImageUploader < CarrierWave::Uploader::Base
version :resized do
# returns an image with a maximum width of 100px
# while maintaining the aspect ratio
# 10000 is used to tell CW that the height is free
# and so that it will hit the 100 px width first
process :resize_to_fit => [100, 10000]
end
end
Dokumentacja i przykład tutaj: http://www.imagemagick.org/RMagick/doc/image3.html#resize_to_fit
Pamiętaj, resize_to_fit
będzie skalowanie obrazów, jeśli są one mniejsze niż 100px. Jeśli nie chcesz tego zrobić, zastąp go resize_to_limit
.
używam
process :resize_to_fit => [100, 10000]
Korzystając 10000
lub dowolną bardzo dużą liczbę pozwolić Carrierwave znać wysokość jest wolny, tylko zmiana rozmiaru szerokości.
@iWasRobbed: Nie sądzę, że to poprawne rozwiązanie. Zgodnie z linku wklejonym o resize_to_fit
: The maximum height of the resized image. If omitted it defaults to the value of new_width.
Więc w twoim przypadku process :resize_to_fit => [100, nil]
jest równoważna process :resize_to_fit => [100, 100]
który nie gwarantuje, że zawsze możesz liczyć na stałą szerokość 100px
nie byłoby lepszym rozwiązaniem rzeczywiście być:
process :resize_to_fit => [100, -1]
w ten sposób nie trzeba ograniczyć wysokość wcale
EDIT: Właśnie sobie sprawę, to działa tylko z MiniMagick, dla rmagick wydaje się nie mieć opcję ale dodać dużą liczbę do wysokości
Pamiętaj, że '[-1, 100]' nie działałoby, co oznacza, że nie można tworzyć miniaturek o stałej wysokości. – lulalala
- 1. Zmiana rozmiaru istniejącego obrazu Carrierwave
- 2. Zmiana rozmiaru obrazu warunkowego za pomocą Carrierwave
- 3. Zmiana rozmiaru obrazów w katalogu
- 4. Zmiana rozmiaru obrazów w VB.NET
- 5. CSS zmiana rozmiaru obrazów, prowadzenie formacji
- 6. Carrierwave dodać znak wodny do przetworzonych obrazów
- 7. Zmiana rozmiaru listy obrazów w wierszu polecenia
- 8. PHP/GD - Kadrowanie i zmiana rozmiaru obrazów
- 9. Zmiana rozmiaru obrazów z przezroczystością w php
- 10. Zmiana rozmiaru obrazów w interfejsie UIWebView do rozmiaru obszaru wyświetlania
- 11. Zmiana rozmiaru obrazu dla galerii obrazów na Tridion 2011
- 12. Imagemagick - Zmiana rozmiaru obrazów na wysokość 25px i współczynnik proporcji
- 13. Ponowne przetwarzanie obrazów w Carrierwave
- 14. Układ Qt, zmiana rozmiaru na minimum po zmianie rozmiaru widżetu
- 15. Zmiana rozmiaru obrazu szyn na widoku widoku?
- 16. Zmiana rozmiaru UIView programowo
- 17. fullcalendar - zmiana rozmiaru okna kalendarz na rozmiar
- 18. Zmiana rozmiaru i kadrowanie obrazów za pomocą ImageResizer
- 19. Zmiana rozmiaru obrazów w Silverlight 3 przy użyciu WriteableBitmap
- 20. jQuery komórkowy Siatka z auto-zmiana rozmiaru obrazów
- 21. Zmiana rozmiaru czcionki na AlertDialog
- 22. Zmiana rozmiaru tekstu na Uibuttonie
- 23. zmiana rozmiaru animacji na wikipedia
- 24. Zmiana rozmiaru obrazów zgodnie z rozdzielczością ekranu Android
- 25. Zmiana rozmiaru/skali facebook jak przycisk (wysokość i szerokość)
- 26. Minimalna szerokość w zmianie rozmiaru okna
- 27. Zmiana rozmiaru szablonu GLKView
- 28. Zmiana rozmiaru/Kadrowanie i Dołączanie 4 zdjęć
- 29. NośnikRozmiar i zmiana rozmiaru do konkretnej szerokości
- 30. Poczta na iPhone'a zmiana rozmiaru zdjęć/div w html email
, jak wskazał Giang Nguyen: w odniesieniu do fali nośnej i przetwarzania obrazu, "[100, nil]" wydaje się być równoważne z "[100, 100]"! –
dziękuję, zaktualizowano – iwasrobbed