2011-10-27 4 views
1

큰 이미지 파일을 가지고 도움이 될 몇 가지 루비 스크립트를 작성해야합니다. imagemagick과 rmagick 라이브러리 (루비)의 기초를 알고 있지만, 지금까지는 (thumbnailing, 워터 마크 추가 등) 일반적으로 간단한 작업을 수행했습니다. 이제 예제 resoultion 3000/1000px 파일을 10 개의 작은 이미지 (3000/100 px). 가능한가? 나는 어떤 방법을 사용할 지 모른다.하나의 이미지를 더 작은 조각으로 자르십시오

답변

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 

편집 : 네, g uess RMagick is cooler :)

+0

그래, 나는'convert' 제안을 고려했지만, Arti는 Ruby와 RMagick을 사용한다고 구체적으로 말했습니다. 그리고'+ repage '는 좋은 캐치입니다; 나는 나의 대답과 동등한 것을 추가했다. – wdebeaum

+0

어쨌든 Amadan;) – Arti

관련 문제