RMagick конвертировать проблему - PullRequest
6 голосов
/ 03 сентября 2010

В Linux я делаю ниже, чтобы преобразовать многостраничный PDF в изображения с измененным размером и с высоким разрешением:

convert -verbose -colorspace RGB -resize 800 -interlace none -density 300 -quality 80 test.pdf test.jpg

На мой взгляд, я не могу воспроизвести эту команду EXACT, используя RMagick. Я попробовал что-то вроде этого ниже, но изображение не имеет размера / разрешения, которое я хочу. Есть идеи?

Magick::ImageList.new('test.pdf').each_with_index { |img, i|
  img.resize_to_fit!(800, 800)
  img.write("test-#{i}.jpg") {
    self.quality = 80
    self.density = '300'
    self.colorspace = Magick::RGBColorspace
    self.interlace = Magick::NoInterlace
  }
}

Ура, G.

1 Ответ

5 голосов
/ 14 декабря 2013

Использовать блок с параметрами качества для метода new вместо метода write:

Magick::ImageList.new('test.pdf') do
  self.quality = 80
  self.density = '300'
  self.colorspace = Magick::RGBColorspace
  self.interlace = Magick::NoInterlace
end.each_with_index do |img, i|
  img.resize_to_fit!(800, 800)
  img.write("test-#{i}.jpg")
end

Не совсем уверен насчет параметров colorspace и interlace, но он определенно работает для qualityи density.

...