2010-05-17 19 views
43

Điều này có vẻ là một câu hỏi khá phổ biến, vì vậy tôi sẽ hỏi nó bằng nhiều từ khóa như tôi nghĩ!Dán hình ảnh xếp chồng với nhau bằng lệnh dựng phim của imagemagick mà không thay đổi kích thước

Tôi có một bó (tốt, chín) gạch jpeg, với tên tệp lát tiêu chuẩn. Mỗi jpeg là 220x175 pixel:

(top row) 
tile_1_0_0.jpg 
tile_1_1_0.jpg 
tile_1_2_0.jpg 
(middle row) 
tile_1_0_1.jpg 
tile_1_1_1.jpg 
tile_1_2_1.jpg 
(bottom row) 
tile_1_0_2.jpg 
tile_1_1_2.jpg 
tile_1_2_2.jpg 

Làm thế nào tôi có thể sử dụng ImageMagick/dựng phim để 'keo' hoặc tham gia cùng họ tất cả cùng nhau để thực hiện một duy nhất, hình ảnh chặt chẽ? Tôi không muốn thay đổi kích thước chúng, vì vậy tôi đoán hình ảnh cuối cùng nên là 660x525.

Đó sẽ là dựng phim mà không có khung, đổ bóng, biên giới, v.v ... - chỉ chín hình ảnh gốc, dán lại với nhau để tạo thành một jpeg duy nhất.

Tôi biết nó phải được cái gì đó dọc những dòng này, nhưng tôi đang phải vật lộn với việc trình tự, kích thước đúng:

montage +frame +shadow +label -tile 3x3 -geometry <options> *.jpg joined.jpg 
+0

Cũng có thể có liên quan: [loại bỏ thêm không gian từ một hình ảnh tổng hợp montage (ImageMagick)? - Unix và Linux] (http://unix.stackexchange.com/questions/4046/remove-extra-tilespace-from-a-montage-imagemagick-composite-image/63463#63463) – sdaau

Trả lời

35

tôi đã tìm cách để làm điều gì đó tương tự và kết thúc ở đây (tôi đoán bạn " càng nhiều từ khóa càng tốt "điều đã làm việc". Đây là những gì tôi nghĩ ra với nó. (Hình học và ngói điều chỉnh cho các nhu cầu của bạn)

montage -border 0 -geometry 660x -tile 3x3 tile* final.jpg 

Các tập tin được thêm vào gạch ngang, vì vậy, đối với -tile 4x2, việc xử lý sẽ là:

1 2 3 4 
5 6 7 8 

Các con số là các vị trí tương đối của tên tệp trong danh sách đối số.

Theo như tôi có thể nói, tile* sẽ mở rộng theo thứ tự abc, vì vậy bạn nên thể chỉ định tên tập tin của bạn bằng tay, hoặc đổi tên sau đó để họ sẽ sắp xếp một cách thích hợp, ví dụ:

# top row 
tile_r0_c0.jpg 
tile_r0_c1.jpg 
tile_r0_c2.jpg 
# middle row 
tile_r1_c0.jpg 
tile_r1_c1.jpg 
tile_r1_c2.jpg 
# bottom row 
tile_r2_c0.jpg 
tile_r2_c1.jpg 
tile_r2_c2.jpg 
+0

Tôi giả định rằng '660x' là cuối cùng kích thước (3 hình ảnh @ 220px mỗi). Từ đọc [ví dụ] (http://www.imagemagick.org/Usage/montage/#geometry_size), tôi nghĩ cờ '-geometry' sẽ thay đổi kích thước * mỗi hình ảnh thành kích thước này (do đó, sử dụng' -geometry 220x' sẽ duy trì kích thước ban đầu trong trường hợp này). Điều đó có đúng không? – Hendy

23

giải pháp của Dave không làm việc cho tôi, vì vậy tôi tìm thấy câu trả lời hay hơn here. Hãy thử điều này:

montage -mode concatenate -tile 3x3 tile*.jpg result.jpg 

nó cũng làm việc mà không có thứ hai "3"

montage -mode concatenate -tile 3x tile*.jpg result.jpg 

dòng hoàn chỉnh cho người dùng Windows là:

"C:\Program Files\ImageMagick-6.8.0-Q16\montage.exe" -mode concatenate -tile 3x tile*.jpg result.jpg 

(thay đổi "6.8.0-Q16 "với phiên bản của riêng bạn của ImageMagick, tất nhiên)

+0

Đã hoạt động hoàn hảo! – max

+0

Tôi đã cài đặt ImageMagick trên Windows nhưng tôi không thấy tệp montage.exe –

+0

Hãy chắc chắn kiểm tra tùy chọn trình cài đặt ImageMagick "Cài đặt tiện ích kế thừa (ví dụ: chuyển đổi)". (thử nghiệm với phiên bản 7.0.7) – user2704917