Rails - WIndows 7 carrierwave, минимальное изменение размера не работает - PullRequest
0 голосов
/ 15 октября 2011

Я попытался настроить загрузку фотографий с помощью моего приложения rails. Однако загрузчик несущей не изменяет размеры загружаемых фотографий. Когда я не вызываю функцию resize_to_fill, фотографии загружаются идеально. Любой совет?

Когда фотография отправляется с resize_to_fill, возвращается ошибка «не удалось обработать». Как я могу это исправить?

Я думаю, мне нужно 'требовать' carrierwave / processing / mini_magick 'для вызова resize_to_fill, но я не знаю, куда поместить этот файл.

Gemfile
"carrierwave", "0.4.10"
"mini_magick", "3.2.1"
"рельсы", "2.3.14"

Платформа
win7 64bit
рубин 1.8.7 imagemagick (путь = C: \ ImageMagick-6.7.2-Q16)

batterhead


спасибо за ваш ответ. Ниже моя кодировка, пожалуйста, сообщите.
я просто думаю, что проблема возникает из-за моей комбинации win7 + imagemagick + mini_magick + carrierwave? я полагаю, что такая проблема должна быть легко воспроизведена многими людьми эти версии несовместимы друг с другом?

Я только что протестировал свое приложение и снова попытался загрузить фотографию. Ошибка обработки:
Не удалось манипулировать с MiniMagick, может быть, это не изображение? Исходная ошибка: Команда («определить -пинг C: /Users/User/mini_magick20111018-4296-f18lsi-0.jpg») завершилась неудачей: {: output => "'identifier" \ 244 \ 243 \ 254O \ 244 \ 272 \ 263 \ 241 \ 251Υ ~ \ 263 \ 241 \ 251R \ 245O \ 241B ............ ",: status_code => 1}
Конечно, JPG не был создан в папке C: / Users / User. пожалуйста, помогите.

{avatar_uploader.rb}  
class AvatarUploader < CarrierWave::Uploader::Base  
  include CarrierWave::MiniMagick  
  storage :file  
  def store_dir  
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"  
  end

  process :resize_to_fill => [320, 240]

  def extension_white_list  
    %w(jpg jpeg gif png)  
  end  
end

{event_photo.rb}  
class EventPhoto < ActiveRecord::Base  
  attr_accessible :event_id, :avatar, :created_by, :updated_by  

  belongs_to:event
  mount_uploader :avatar, AvatarUploader  
end

{preinitializer.rb}  
begin  
  require 'rubygems'  
  require 'bundler'  
end

Ответы [ 2 ]

2 голосов
/ 12 декабря 2011

Я столкнулся с подобной проблемой, хотя не в Windows, хотя эта информация может помочь.

Со страницы Github на MiniMagick (https://github.com/probablycorey/mini_magick/), кажется, что MiniMagik использует команду "mogrify".

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

Чтобы попасть туда, в моей системе OS / X мне пришлось удалить и переустановить ImageMagik, что я и сделал с macports.

Я проверил установку с помощью «identifie filename », а затем сделал следующее в консоли Rails:

filename = '/Users/me/tmp/testfile.jpg'
image = MiniMagick::Image.open(filename)
0 голосов
/ 24 июня 2012

Шаг 1: Проверьте, работает ли mini_magick

  • У вас должны быть установлены ImageMagick или GraphicsMagick.

Шаг 2. Попробуйте следующую команду на вашем irb

> irb
> require 'mini_magick'
> filename = '/Users/me/tmp/testfile.jpg'
> image = MiniMagick::Image.open(filename)
  • Если вы получаете ошибки при запуске этой программы, например, «нет делегата декодирования для этого формата изображения», перейдите к шагу 3.

Шаг 3. Проверка поддерживаемых форматов Imagemagick

> identify -list format
  • В списке должен быть указан jpg. Если нет, перейдите к шагу 4.

Шаг 4. Загрузите и установите делегаты декодирования для Imagemagick

Сайт: http://www.imagemagick.org/download/delegates/

> tar -zxvf jpegsrc.v8b.tar.gz
> cd jpegsrc.v8b
> sudo ./configure
> sudo make
> sudo make install
  • После этого переустановите Imagemagick
...