/ / Przytnij i połącz 3 obrazy w jednym poleceniu ImageMagick lub Convert - merge, imagemagick, crop, imagemagick-convert

Przycinaj i łącz 3 obrazy w jednym poleceniu ImageMagick lub Convert - merge, imagemagick, crop, imagemagick-convert

chcesz przyciąć 3 regiony z picture.jpg i dołącz do tych 3 obrazów w jednym.

Czy można przyciąć i scalić te 3 obrazy w jednym poleceniu imagemagick lub convert? Jeśli nie jest możliwe w jednym poleceniu, w jaki sposób można scalić 3 obrazy w osobnych poleceniach?

Moim celem jest uniknięcie zapisania tymczasowych obrazów wykonanych w jednym poleceniu.

Dostaję każdy region za pomocą następujących poleceń.

convert picture.jpg -crop 212x32+717+190 -resize 318x48! out1.jpg
convert picture.jpg -crop 440x231+20+251 -resize 660x347! out2.jpg
convert picture.jpg -crop 440x231+490+251 -resize 660x347! out3.jpg
  • Rozmiar obrazu wyjściowego, który chcę uzyskać, wynosi 1336x411 pikseli.
  • Położenie każdego przyciętego obrazu w ostatecznym obrazie wyjściowym będzie następujące:

    out1.jpg znajduje się w (x, y) = (509,0) out2.jpg znajduje się w (x, y) = (0,64) out3.jpg znajduje się w (x, y) = (676,64)

picture.jpg picture.jpg

output.jpg output.jpg

Odpowiedzi:

2 dla odpowiedzi № 1

Używając "konwertuj" IM, możesz przeczytać w oryginaleimage, a następnie "-clone" kilka razy w nawiasach, aby pracować na kopiach obrazu wejściowego. Wewnątrz nawiasów możesz "-crop" skopiować każdą kopię w dowolny sposób i "-przecinać" tak, aby każdy zawierał gotowy rozmiar płótna i informacje o położeniu. Następnie możesz "-delete" pierwotne wejście, "-flatten" trzy pozostałe obrazy na jednym płótnie i zapisz dane wyjściowe.

Polecenie będzie wyglądać tak w wierszu polecenia systemu Windows.

convert input.jpg ^
( -clone 0 -crop 212x32+717+190 -resize 318x48! -repage 1336x411+509+0 ) ^
( -clone 0 -crop 440x231+20+251 -resize 660x347! -repage 1336x411+0+64 ) ^
( -clone 0 -crop 440x231+490+251 -resize 660x347! -repage 1336x411+676+64 ) ^
-delete 0 -flatten output.png

Jeśli używasz systemu * nix, będziesz musiał zastąpić te kontynuowane linie "^" odwróconymi ukośnikami "", a także uciec przed nawiasami za pomocą odwróconych ukośników "(...)".