我需要编写一些ruby脚本来帮助我处理大图像文件。我知道imagemagick和rmagick库(ruby)的基础知识,但到目前为止我做了一般简单的事情(缩略图,添加水印等)现在我想将示例resoultion 3000 / 1000px的文件剪切成十个较小的图像(3000/100像素) )。可能吗?我不知道使用哪种方法。
答案 0 :(得分:5)
crop
如何为每个输出图像ping输入图像一次:
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
答案 1 :(得分:1)
10.times do |slice|
system "convert example.jpg -crop x100+0+#{slice * 100} +repage example#{slice}.jpg"
end
编辑:是的,我觉得RMagick更酷:)