2011-10-27 7 views
1

大きなイメージファイルを手助けするルビスクリプトを書く必要があります。私はimagemagickとrmagickライブラリ(ルビー)の基礎を知っていますが、今まで私は一般的に単純なことを行っていました(サムネイル、透かしなどを追加する)。今度はreseltion 3000/1000pxを10個の小さな画像(3000/100 px )。出来ますか?どの方法を使うのか分かりません。1つのイメージをより細かく切り取る

答えて

5

どの約cropピング出力画像毎に一度入力画像:より一般

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

+0

偉大な答えに多くの感謝! – Arti

1
10.times do |slice| 
    system "convert example.jpg -crop x100+0+#{slice * 100} +repage example#{slice}.jpg" 
end 

EDIT:ええ、私グラムuess RMagickはよりクールです:)

+0

ええ、私は 'convert'を提案することを考えましたが、Artiは特にRubyとRMagickを使うと言っていました。そして '+ repage'は良いキャッチです。私は私の答えに相当するものを加えました。 – wdebeaum

+0

ありがとうとにかくAmadan;) – Arti

関連する問題