Jak scalać obrazy w jednym pliku PDF


13

Mam kilka zdjęć, które chcę scalić. Znaczenie scalania jest takie, że jeśli mam 5 obrazów, chcę umieścić brzeg blisko siebie w następujący sposób:

wprowadź opis zdjęcia tutaj

Chcę zrobić ten wiersz poleceń. Na przykład polecenie może być:

foo image1 image2 image3 image4 image5

Szukam również sposobu, który scaliłby wiele obrazów, ponieważ mam wiele obrazów.

Nawiasem mówiąc, wynik może być w formacie PDF lub nawet w formacie obrazu. A także powinien to być wiersz poleceń, ponieważ chcę to zapisać w pliku bash.


Czy wszystkie są tego samego rozmiaru?
Tim

@ Czas tak, są w tym samym rozmiarze. Mam 29 wykresów, które chcę umieścić wszystkie blisko siebie w jednym pliku pdf lub png
Mohammad Reza Rezwani

@ Tim jak głosować na swoją zmianę? :)
Mohammad Reza Rezwani,

2
O nie, nie jest możliwe :) ale dzięki. Mam dość szybki inkscape, zajęło to tylko kilka minut!
Tim

Odpowiedzi:


19

Zobacz montagepolecenie from imagemagick( sudo apt-get install imagemagick).

montage -geometry 250x250+0+0 image1.png image2.png out.png

Spowoduje to zmianę rozmiaru każdego obrazu (do 250 pikseli bez deformacji) i połączenie ich bez marginesu.

Więcej przykładów montażu .


Możesz także użyć convert(na przykład symboli wieloznacznych):

convert -append pixpixp-*.jpg newpix.jpg

6

Robiłem kiedyś coś podobnego . Wygląda na to, że są włączone. W moim przypadku do siatki wpuszczono zmienną liczbę obrazów i chciałem po prostu stworzyć obraz o szerokości 17, niezależnie od tego, ile obrazów będzie wysokich.

montage -mode concatenate $(printf 'rose: %.0s' {1..136}) -resize 100x80 -tile 17x output.jpg

To po prostu wykorzystuje 136 obrazów róży, aby utworzyć siatkę o wysokości 8 płytek. Oczywiście będziesz chciał zmienić $(...)grupę dla listy swoich obrazów wejściowych. I będziesz chciał ustawić zmienną kafelka na coś takiego, 2xjeśli chcesz ustawić liczbę kafelków.

Jeśli chodzi o wyjście do formatu PDF, możesz po prostu zmienić rozszerzenie. Więc patrzyłbyś na coś takiego:

montage -mode concatenate $(printf 'rose: %.0s' {1..5}) -tile 2x out.pdf
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.