2010-09-02 97 views
6

在linux下我做了下面一个多页PDF转换成图像调整尺寸和高分辨率:RMagick转换问题

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

干杯, G.与替代方法write方法new质量选项

+3

找到解决方案。你必须使用:img = Magick :: Image :: read('test.pdf'){self.density = 300} .each {| img | #blah} 这基本上读取具有指定密度的文件。 – gurpal2000 2010-09-02 22:26:15

回答

5

使用块:

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 

不知道实际上关于colorspaceinterlace选项, 但它肯定工程对于qualitydensity

+0

是的,它不适用于色彩空间。还有什么方法可以改变色彩空间吗? – 2015-12-16 15:15:48