2010-09-02 5 views
6

Dans linux je fais le ci-dessous pour convertir un fichier PDF multipages en images redimensionnées et avec une haute résolution:RMagick problème de conversion

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

Pour la vie de moi, je ne peux pas sembler reproduire ce EXACT commande en utilisant RMagick. J'ai essayé quelque chose comme ceci ci-dessous mais l'image n'a pas la taille/résolution que je veux. Des idées?

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

TROUVER la solution. Vous devez utiliser: img = Magick :: Image :: read ('test.pdf') {self.density = 300} .each {| img | # blah} Cela lit essentiellement dans le fichier avec la densité spécifiée. – gurpal2000

Répondre

5

Utiliser le bloc avec des options de qualité pour la méthode new au lieu de la méthode 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 

Je ne sais pas vraiment de colorspace et interlace options, mais il fonctionne vraiment pour quality et density.

+0

Ouais, ça ne fonctionne pas pour l'espace colorimétrique. Y a-t-il un moyen de changer aussi l'espace de couleur? –