Tôi đang sử dụng RMagick và muốn hình ảnh của tôi được thay đổi kích thước thành chiều rộng cố định là 100px và tỷ lệ chiều cao tương ứng. Ví dụ: nếu người dùng tải lên 300x900px, tôi muốn nó được chia tỷ lệ thành 100x300px.Carrierwave - Thay đổi kích thước hình ảnh thành độ rộng cố định
Trả lời
Chỉ cần đặt này trong tập tin tải lên của bạn:
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
Tài liệu và ví dụ ở đây: http://www.imagemagick.org/RMagick/doc/image3.html#resize_to_fit
Hãy ghi nhớ, resize_to_fit
sẽ mở rộng quy mô hình ảnh nếu họ có kích thước nhỏ hơn 100px. Nếu bạn không muốn làm điều đó, hãy thay thế bằng resize_to_limit
.
tôi sử dụng
process :resize_to_fit => [100, 10000]
Sử dụng 10000
hoặc bất kỳ số lượng rất lớn để cho Carrierwave biết chiều cao là miễn phí, chỉ cần thay đổi kích thước chiều rộng.
@iWasRobbed: Tôi không nghĩ đó là giải pháp đúng. Theo liên kết mà bạn dán về resize_to_fit
: The maximum height of the resized image. If omitted it defaults to the value of new_width.
Vì vậy, trong trường hợp của bạn process :resize_to_fit => [100, nil]
tương đương với process :resize_to_fit => [100, 100]
đó không đảm bảo rằng bạn sẽ luôn có được chiều rộng cố định của 100px
Sẽ không phải là giải pháp tốt hơn thực sự là:
process :resize_to_fit => [100, -1]
bằng cách này bạn không cần phải hạn chế chiều cao ở tất cả các
EDIT: chỉ cần nhận ra điều này chỉ làm việc với MiniMagick, Đối RMagick bạn dường như không có lựa chọn nào khác để thêm một số lượng lớn với chiều cao
Lưu ý rằng '[-1, 100]' sẽ không hoạt động, có nghĩa là bạn không thể tạo hình thu nhỏ hình ảnh có chiều cao cố định. – lulalala
- 1. Kích thước hình ảnh Carrierwave
- 2. UIImageView: Thay đổi kích thước thành kích thước hình ảnh?
- 3. iTextSharp: Cách thay đổi kích thước hình ảnh để vừa với kích thước cố định?
- 4. Thay đổi kích thước hình ảnh jpeg thành kích thước được chỉ định
- 5. ImageMagick - Thay đổi kích thước hình ảnh thành hình vuông
- 6. thay đổi kích thước hình ảnh ckfinder
- 7. Thay đổi kích thước hình ảnh IFrame
- 8. Thay đổi kích thước hình ảnh có điều kiện bằng Carrierwave
- 9. Thay đổi kích thước hình ảnh trong UIWebView thành kích thước khung nhìn
- 10. Thay đổi kích thước hình ảnh thành 50% kích thước ban đầu trong HTML
- 11. CarrierWave và đổi kích thước thành một chiều rộng cụ thể
- 12. UIButton với hình ảnh tùy chỉnh kích thước cố định
- 13. ImageMagick - Thay đổi kích thước thành chiều rộng tối đa
- 14. Thay đổi kích thước hình ảnh bitmap
- 15. Thay đổi kích thước hình ảnh PNG
- 16. Thay đổi kích thước hình ảnh trong Java để giảm kích thước hình ảnh
- 17. Kích thước cố định của Flexslider
- 18. ImageView có kích thước cố định, bất kể kích thước hình ảnh
- 19. Thay đổi kích thước hình ảnh trong xoay
- 20. PIL Image.resize() không thay đổi kích thước hình ảnh
- 21. thay đổi kích thước hình ảnh bằng jquery
- 22. C# lý do thay đổi kích thước hình ảnh sẽ tăng kích thước tệp
- 23. Thay đổi kích thước hình ảnh trên máy chủ
- 24. phương pháp setImage thay đổi chiều rộng UIBarButtonItem, ngay cả khi kích thước hình ảnh không thay đổi
- 25. Python Magickwand pdf để chuyển đổi hình ảnh và thay đổi kích thước hình ảnh
- 26. Thay đổi kích thước hình ảnh trong python
- 27. Thay đổi kích thước hình ảnh trong thư mục
- 28. Thuật toán thay đổi kích thước hình ảnh
- 29. Thay đổi kích thước hình ảnh trong Grails
- 30. Thay đổi kích thước hình ảnh bằng django?
như được chỉ ra bởi Giang Nguyễn: liên quan đến carrierwave và xử lý hình ảnh, '[100, nil]' có vẻ tương đương với '[100, 100]'! –
cảm ơn, cập nhật – iwasrobbed