Pregunta

En Linux que estoy haciendo lo siguiente para convertir un PDF de varias páginas en imágenes redimensionadas y con una alta resolución:

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

Para la vida de mí, me parece que no puede reproducir este comando exacto usando RMagick. He intentado algo como esto más adelante, pero la imagen no tiene el tamaño / resolución que quiero. Algunas ideas?

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
  }
}

Cheers, G.

¿Fue útil?

Solución

Use un bloque con opciones de calidad para el método new en lugar de write método:

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

No está seguro acerca de las opciones realidad colorspace y interlace, pero definitivamente funciona para quality y density.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top