RMagick转换问题

gur*_*000 6 rmagick

在linux中我正在做以下操作将多页PDF转换为调整大小且具有高分辨率的图像:

convert -verbose -colorspace RGB -resize 800 -interlace none -density 300 -quality 80 test.pdf test.jpg
Run Code Online (Sandbox Code Playgroud)

对于我的生活,我似乎无法使用RMagick重现这个EXACT命令.我试过下面这样的东西,但图像没有我想要的尺寸/分辨率.有任何想法吗?

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
  }
}
Run Code Online (Sandbox Code Playgroud)

干杯,G.

Ale*_*nts 6

对于方法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
Run Code Online (Sandbox Code Playgroud)

不确定实际上colorspaceinterlace选项,但它肯定适用于qualitydensity.