ruby - 将一张图片切割成更小的部分

标签 ruby image-processing imagemagick rmagick

我需要编写一些 ruby​​ 脚本来帮助我处理大图像文件。我知道 imagemagick 和 rmagick 库(ruby)的基础知识,但直到现在我都在做一般简单的事情(缩略图,添加水印等)现在我想将示例分辨率为 3000/1000px 的文件剪切成十个较小的图像(3000/100 px ).是否可以?我不知道该使用哪种方法。

最佳答案

如何为每个输出图像裁剪一次输入图像:

output_images =
  (0...10).collect { |i|
    input_image.crop(0, i*100, 3000, 100, true)
  }

更一般地(但仍然假设 Y 分辨率可以被切片数整除):

def slice_image_horizontally(image, num_slices)
  slice_height = image.y_resolution / num_slices
  (0...num_slices).collect { |i|
    image.crop(
      0, i * slice_height,
      image.x_resolution, slice_height,
      true # reset image offset
    )
  }
end

http://www.imagemagick.org/RMagick/doc/image1.html#crop

关于ruby - 将一张图片切割成更小的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7917552/

相关文章:

resize - ImageMagick 保留 Exif 数据

php - 使用 Imagick 创建 PDF 缩略图并写入文件

mysql - 如何创建与 Rails 中的 View 相对应的模型

ruby-on-rails - 使用 Formtastic 在 textarea 上的最大字符长度

python - 在哪里可以找到 PythonMagick 文档?

image - 图片中的笔划检测算法检测直线和曲线

python - 在python中的蒙版外的图像上添加模糊/渐变

ruby - 在 Ruby 中访问 Hash of Hash of Hash

ruby-on-rails - 我如何编写最有效的范围来仅询问那些具有某些子对象的父对象

image-processing - 多 View 中校正图像点的三角测量