在我的Rails应用中,我想使用Rmagick gam将PDF转换为PNG。
我发现这些行可以解决问题:
require 'RMagick'
pdf = Magick::ImageList.new("file_name.pdf")
pdf.each_with_index do |page_img, i|
page_img.write("#{i}.png")
end
但是输出的PNG文件质量不是很好(源是好的),有什么方法可以改善它吗?
答案 0 :(得分:3)
PDF通常是矢量图形文件。要将其读取为光栅图像,需要指定分辨率/浓度。通常使用的密度是72,有点低(对于Web缩略图,可能还可以)。如果您将ImageList行更改为
pdf = Magick::ImageList.new("file_name.pdf") {self.density="300"}
这似乎可行。
答案 1 :(得分:0)
您可以将一个块传递到设置质量属性的new method。 (这为Image::Info设置了属性)
require 'RMagick'
pdf = Magick::ImageList.new("file_name.pdf") do
# Adjust quality (default 75)
self.quality = 100
end
pdf.each_with_index do |page_img, i|
page_img.write("#{i}.png")
end