2010-09-02 185 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