Рассчитать размеры миниатюр с помощью RMagick - PullRequest
0 голосов
/ 01 марта 2010

Я использую attachment_fu и RMagick для загрузки / изменения размера изображений в приложении rails. В настоящее время я использую локальную файловую систему в качестве хранилища, но у меня есть план использовать AWS S3 для этой работы. В любом случае мне очень интересно узнать, что другие люди испытывают при использовании S3, а также у меня есть один большой вопрос для вас. В моем приложении, когда пользователь загружает изображение, я изменяю размер этого изображения до 5 различных размеров и сохраняю их вместе с исходными изображениями. (всего 6 изображений) в зависимости от размера миниатюры, представленной в модели:

 :thumbnails => { 
                 "thumb" => "120x80",
                  "extra_small"=>"480x320",
                  "small"=>"640x480", 
                  "medium" => "800x533",
                  "large"=>"2738x1825", 
                  "extra_large" => "3464x2309" 

Наконец я получаю:

  • image_foo.jpg (Исходное изображение)
  • image_foo_thumb.jpg
  • image_foo_extra_small.jpg
  • image_foo_small.jpg
  • image_foo_medium.jpg
  • image_foo_large.jpg
  • image_foo_extra_large.jpg

Причина, по которой я изменяю размеры этих изображений, заключается в том, что мне необходимо сохранить фактические размеры каждого изображения в базе данных. Но на самом деле даже я указал размеры для эскизов, я не получаю точные размеры. В любом случае, все в порядке, так как размер рассчитывается на основе соотношения сторон.

Но мне действительно не нравится тратить место на сервере, если я могу рассчитать размеры миниатюр, не сохраняя их в файловой системе. Другими словами, мне нужно только сохранить исходный файл, а не миниатюры, но все же мне нужно получить размеры миниатюр. Можно ли получить реальные размеры миниатюр, не создавая их в RMagick?

1 Ответ

2 голосов
/ 01 марта 2010

Пространство на S3 относительно дешево. Так что я бы не сильно волновался. Тем не менее, вы можете рассмотреть возможность преобразования изображений в меньшие размеры. Вы можете оставить маленькие и очень маленькие и использовать атрибуты ширины и высоты тега HTML img. Однако это замедлит вашу боковую нагрузку и увеличит трафик.

Я думаю, что вы действительно ищете, это решение, которое конвертирует файлы на лету, когда они запрашиваются, верно? Я не уверен, есть ли решение для этого с полки. Тем не менее, это было бы основным отстой производительности.

Так что я рекомендую просто придерживаться разных размеров и платить амазонке еще несколько центов. Это даст лучшую производительность и будет проще в обслуживании. Вам не нужно беспокоиться о масштабировании и о том, что хранилище становится все дешевле и дешевле, работает с этим решением.

...