Проблем с конвертирането на RMagick

В linux правя следното по-долу, за да конвертирам многостраничен PDF в изображения с преоразмерен размер и висока разделителна способност:

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

За живота си, изглежда не мога да възпроизведа тази ТОЧНА команда с помощта на 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
  }
}

Наздраве, Г.


person gurpal2000    schedule 02.09.2010    source източник
comment
НАМЕРИХ решението. Трябва да използвате: img = Magick::Image::read('test.pdf') { self.density = 300 }.each { |img| # blah } Това основно се чете във файла с определената плътност.   -  person gurpal2000    schedule 03.09.2010


Отговори (1)


Използвайте блок с опции за качество за метод 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.

person Alex Avoiants    schedule 14.12.2013
comment
Да, не работи за цветово пространство. Има ли някакъв начин и за промяна на цветовото пространство? - person Raju akula; 16.12.2015