【问题标题】:RMagick convert problemRMagick 转换问题
【发布时间】:2013-12-15 01:48:41
【问题描述】:

在 linux 中,我正在执行以下操作以将多页 PDF 转换为调整大小并具有高分辨率的图像:

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

对于我的生活,我似乎无法使用 RMagick 重现这个 EXACT 命令。我在下面尝试了类似的方法,但图像没有我想要的大小/分辨率。有什么想法吗?

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.

【问题讨论】:

  • 找到解决方案。你必须使用: img = Magick::Image::read('test.pdf') { self.density = 300 }.each { |img| # blah } 这基本上是读入指定密度的文件。

标签: rmagick


【解决方案1】:

对方法 new 使用带有质量选项的块,而不是方法 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

实际上不确定colorspaceinterlace 选项, 但它绝对适用于qualitydensity

【讨论】:

  • 是的,它不适用于色彩空间。有没有办法改变色彩空间?
猜你喜欢
  • 1970-01-01
  • 2013-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
  • 2012-05-28
  • 1970-01-01
相关资源
最近更新 更多