2010-09-02 17 views
6

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:RMagick problema converso

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 EXACTA comando usando RMagick. Intenté algo como esto debajo 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.

+3

ENCUENTRON la solución. Tienes que usar: img = Magick :: Image :: read ('test.pdf') {self.density = 300} .each {| img | # blah} Esto básicamente se lee en el archivo con la densidad especificada. – gurpal2000

Respuesta

5

Use un bloque con opciones de calidad para el método new en lugar de método 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 
No

seguro realmente acerca de colorspace y interlace opciones, pero definitivamente las obras para quality y density.

+0

Sí, no funciona para el espacio de color. ¿Hay alguna manera de cambiar el espacio de color también? –

Cuestiones relacionadas