Jak przyciąć obramowanie / białe miejsca z obrazu?

52

Mam wiele zdjęć z białymi obwódkami wokół nich. Chciałbym przyciąć te granice naraz, najlepiej z linii poleceń. Wierzę, że można to zrobić za pomocą ImageMagick, ale nie mogłem znaleźć odpowiedniego polecenia.

Wiem, że można tego dokonać za pomocą programu Windows o nazwie Irfanview z opcją „Automatyczne przycinanie granic”, ale szukam rozwiązania opartego na Ubuntu i najlepiej z wiersza poleceń.

Rafał
źródło
Czy próbowałeś Gimp?
Mitch
1
@Mitch Nie, nie wiedziałem, że Gimp ma tryb wsadowy. W każdym razie korzystanie z ImageMagick Trim jest prostsze, więc pozostanę przy tym rozwiązaniu.
Rafal
Oszustwo ogólnie sugeruje rozwiązania GUI ...
Wilf

Odpowiedzi:

65

ImageMagick Trim

Opcja wiersza poleceń trimużywana razem z convertlub mogrifypozwala przycinać ramki tego samego koloru co rogi obrazu.

Stosowanie:

convert input.png -trim output.png

Dodatkowe opcje -fuzzusuwają również kolory w pobliżu kolorów narożnych. Użyj opcji, +repageaby usunąć płótno (jeśli dotyczy).

ImageMagick Batch Trim (znajdź)

Powyższe polecenie dla ImageMagick Trim może być również użyte do przetwarzania wsadowego obrazów w połączeniu z findpoleceniem:

find ./ -name "pattern" -exec convert {} -trim outputfolder/{} \;

przycina wszystkie obrazy, które pasują do patternczęści polecenia i zapisuje je w nowym folderze o nazwie outputfolder.

Zakładając, że obrazy są plikami PNG, polecenie będzie wyglądać następująco:

find ./ -name "*.png" -exec convert {} -trim outputfolder/{} \;

ImageMagick Batch Trim (mogrify)

Chociaż findpozwala na znacznie większą kontrolę nad tym, gdzie będą umieszczane pliki wyjściowe, możliwe jest również to samo z ImageMagick mogrify:

mogrify -trim *.png

Należy pamiętać, że w przeciwieństwie do convertoperacji wsadowej findi convert mogrify nadpisuje wszystkie pliki . Najlepiej wykonać kopię zapasową wszystkich obrazów w katalogu przed kontynuowaniem polecenia mogrify.

Uwaga dodatkowa: mogrifymoże być używana do wykonywania większości (jeśli nie wszystkich) convertoperacji wsadowych, podczas zastępowania oryginalnych plików.

IrfanView

IrfanView działa całkiem dobrze z Wine . Pamiętaj, aby dokładnie sprawdzić wydajność Irfanview, ponieważ czasami psuje obrazy, gdy jest używany z Wine.

Takkat
źródło
To działa. Dziękuję Ci bardzo. Dodałem informacje o przetwarzaniu wsadowym obrazów za pomocą ImageMagick po połączeniu findpolecenia, ponieważ brakowało w twojej odpowiedzi.
Rafal
9
Kiedyś mogrify -trim *.jpgkadrowałem wszystkie obrazy w bieżącym folderze.
Buttle Butkus
1
To jest świetne. Oszczędzało mi to dużo czasu. TX :)
antmw1361
@ButtleButkus Zredagowałem odpowiedź, aby uwzględnić tę informację. Z jakiegoś powodu wcześniej zapomniałem o tej opcji.
Rafał
1
czy jest jakiś sposób na przycięcie obrazu png wzdłuż jego wysokości, przy zachowaniu stałej szerokości?
ddas