【问题标题】:JPEG to TIFF using minimagick使用 minimagick 将 JPEG 转换为 TIFF
【发布时间】:2021-03-31 21:12:35
【问题描述】:

我想将我的 jpeg 图像转换为具有某些条件的 tiff 图像,满足所有因素但我无法弄清楚如何减小大小,目前,图像在转换后变为 1.2MB,我想要将其减小到小于或等于 100kb,分辨率为 200 dpi。 原始 jpeg 图片大小为 250kb,大小为 456 X 679。

怎么做?

require 'mini_magick'

class FileConversionService

  def self.to_tiff
    input_path = "/images/1.jpg"
    image = MiniMagick::Image.open(input_path)
    k = image.format("tiff")
    k.write("/images/1_tiff")
    tiff_path = "/images/1_tiff"
    image_data = MiniMagick::Tool::Convert.new do |img|
        img << tiff_path
      img << '-resize' << "1600x734"
      img << '-colorspace' << "scRGB"
      img << '-density' << "700"
      img << '-background' << "white"
      img << '-verbose'
      img << tiff_path
    end
  end

end

FileConversionService.to_tiff

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 rubygems minimagick


    【解决方案1】:

    您可以添加 -compress 选项和 ZIPLZW 选项以启用 TIFF 压缩。但是对于大多数图像,TIFF 会比 JPEG 大。此外,您还指定了 resize 选项,它将您的图像放大到 979x734,使其成为更大的图像。

    作为附加注释,您当前的代码转换两次,一次通过

    input_path = "/images/1.jpg"
    image = MiniMagick::Image.open(input_path)
    k = image.format("tiff")
    k.write("/images/1_tiff")
    tiff_path = "/images/1_tiff"
    

    打开jpg并写入tiff,第二次做

    image_data = MiniMagick::Tool::Convert.new do |img|
        img << tiff_path
      img << '-resize' << "1600x734"
      img << '-colorspace' << "scRGB"
      img << '-density' << "700"
      img << '-background' << "white"
      img << '-verbose'
      img << tiff_path
    end
    

    重新打开 tiff 文件,将其调整为定义的参数,然后再次将其输出到 tiff_path。只需使用 convert 即可一次性完成:

    input_path = "/images/1.jpg"
    tiff_path = "/images/1.tiff"
    MiniMagick::Tool::Convert.new do |img|
      img << input_path
      img << '-compress' << 'ZIP'      
      img << '-resize' << "1600x734"
      img << '-colorspace' << "scRGB"
      img << '-density' << "700"
      img << '-background' << "white"
      img << tiff_path
    end
    

    【讨论】:

    • 谢谢,Bruno,但压缩无法满足将文件大小保持在小于或等于 100kb 的要求。我应该怎么做才能让所有图像
    • 我不知道,如果 imagemagick 支持这样的东西。你可以在他们在 github github.com/ImageMagick/ImageMagick/discussions 的讨论部分问,也许那里有人有想法。
    猜你喜欢
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    • 2013-10-31
    相关资源
    最近更新 更多