У меня есть приложение для рельсов 4, где я разрешаю пользователям загружать изображения. У меня есть валидации для минимального размера 640X385 и, следовательно, минимальное соотношение сторон 1,6623376623376624. Теперь это означает, что пользователь не может загружать меньшие изображения с точки зрения размера или соотношения сторон. И когда они загружают более крупное изображение, оно изменяется с помощью метода resize_to_fit ImageMagick. Но он изменяется пропорционально ширине и высоте, и проверка моего измерения не удалась. Если я использую resize_to_fill, даже более мелкие изображения получают растянутую и обходную пропорцию. Итак, как мне получить способ изменения размера для изменения размера изображения до 640X385?Carrierwave: изменение размера изображения до фиксированной ширины и высоты
0
A
ответ
0
Так что я точно не знаю, какого результата вы ожидаете для разных размеров. Я предпочитаю использовать ImageMagick в командной строке, так что я подготовил небольшой скрипт с примерами, которые могут или не могут помочь вам:
#!/bin/bash
# cleanup
rm *.jpg
# as expected
convert -size 640x385 xc:white img0.jpg
# bigger aspect ratio (2.0)
convert -size 800x400 xc:white img1.jpg
# lower aspect ratio (1.0)
convert -size 800x800 xc:white img2.jpg
# bigger aspect ratio (2.0) but to small
convert -size 400x200 xc:white img3.jpg
# lower aspect ratio (1.0) but to small
convert -size 200x200 xc:white img4.jpg
for img in img*; do
# resize images to fit in box but keep aspect ratio
convert ${img} -resize 640x385 r1.${img}
# resize images keeping the aspectratio to fit in box. But only shrink
# images, images that are to small is not enlarged.
convert ${img} -resize 640x385\> r2.${img}
# resize images ignoring the aspectratio to fit in box. But only shrink
# images, images that are to small is not enlarged.
convert ${img} -resize 640x385\>\! r3.${img}
done
identify -format "%f: %w %h\n" *.jpg
Выход следующим образом:
img0.jpg: 640 385
img1.jpg: 800 400
img2.jpg: 800 800
img3.jpg: 400 200
img4.jpg: 200 200
r1.img0.jpg: 640 385
r1.img1.jpg: 640 320
r1.img2.jpg: 385 385
r1.img3.jpg: 640 320
r1.img4.jpg: 385 385
r2.img0.jpg: 640 385
r2.img1.jpg: 640 320
r2.img2.jpg: 385 385
r2.img3.jpg: 400 200
r2.img4.jpg: 200 200
r3.img0.jpg: 640 385
r3.img1.jpg: 640 385
r3.img2.jpg: 640 385
r3.img3.jpg: 400 200
r3.img4.jpg: 200 200
Я предполагаю, что вы ища последний вариант, где результат называется r3.<something>
.
Для получения дополнительной информации и хороших примеров того, как использовать изменение размера: http://www.imagemagick.org/Usage/resize/
также посмотреть на: Resizing the image with padding using convert on ubuntu
Я надеюсь, что это помогает.
Смежные вопросы
- 1. Carrierwave - изменение размера изображения до фиксированной ширины
- 2. Изменение размера изображения на PN до минимальной ширины/высоты
- 3. Изменение ширины и высоты изображения
- 4. изменение высоты и ширины изображения
- 5. Пакетные изображения обрезки до фиксированной высоты (CLI)
- 6. Carrierwave Изменение размера существующего изображения
- 7. Изменение размера изображения минимальной ширины и максимальной высоты
- 8. Изменение размера изображения до определенной высоты
- 9. Изменение размера до определенной ширины и высоты с помощью ffmpeg
- 10. Изменение размера холста до полной ширины и высоты окна браузера
- 11. Изменение размера изображения с массивом высоты и ширины
- 12. Mini_Magick и CarrierWave не изменение размера изображения
- 13. Как программно масштабировать UIImageView до фиксированной ширины и гибкой высоты?
- 14. Изменение размера ширины HBox до содержания
- 15. UITabBarItem Изменение высоты и ширины изображения
- 16. изменение высоты и ширины изображения в андроиде
- 17. изменение высоты и ширины изображения - android
- 18. Загрузить: определение максимальной ширины и высоты изображения
- 19. Carrierwave изменение размера изображения перед сохранением
- 20. CSS Изменение размера высоты изображения
- 21. Настройка высоты/ширины видео до фактического размера
- 22. phpThumb изменить размер до фиксированной высоты, но динамической ширины?
- 23. Изменение ширины и высоты контейнера без изменения размера ребенка
- 24. Изменение размера изображения Carrierwave не работает
- 25. Высота div до высоты изображения и ширины изображения до ширины div
- 26. Изменение размера HTML в php с использованием ширины и высоты?
- 27. Сброс фиксированной ширины и высоты в AutoLayout
- 28. Изменение размера ImageView до высоты TextView
- 29. Динамическое изменение размера изображения
- 30. Изменение размера изображения до максимальной высоты, но переполнение страницы
Скажите, какие результаты вы ожидаете, если вы измените размер изображения 1000x1000 на 640x385? –
Я в основном хочу, чтобы resize_to_fit запускал, прежде чем манипулировать! в классе MyImageUploader
Вы мне не ответили. Я спросил вас, как это будет выглядеть *, вы сказали мне, когда это будет обработано. –