将一个图像切成小块

Art*_*rti 1 ruby rmagick imagemagick image-processing

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

wde*_*aum 5

如何crop为每个输出图像ping输入图像一次:

output_images =
  (0...10).collect { |i|
    input_image.crop(0, i*100, 3000, 100, true)
  }
Run Code Online (Sandbox Code Playgroud)

更一般地(但仍假设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
Run Code Online (Sandbox Code Playgroud)

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