Jak zastąpić biały kolor tła przezroczystym obrazem w ImageMagick?

Mam obrazek w .jpg format z white background color. Chcę usunąć biały kolor tła do przezroczystego w Imagemagick. Próbowałem na wiele sposobów, ale nadal nie można usunąć białego tła. Czy ktoś może mi pomóc to rozwiązać?

4 answers

Nie możesz mieć przezroczystych kolorów tła w swoich JPEG-ach. Format pliku JPEG nie obsługuje przezroczystości.

Jeśli potrzebujesz przezroczystego tła, musisz przekonwertować JPEG na

  • albo PNG (wysoka jakość, Rozmiar pliku prawdopodobnie większy niż JPEG)
  • lub GIF (w przypadku, gdy można tolerować niską jakość i zakres maksymalnie 255 kolorów).

Przykładowe polecenie:

convert  your.jpg  -transparent white  your.png
 63
Author: Kurt Pfeifle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-12-31 20:44:21

Najpierw musisz przekonwertować format obrazu z formatu .jpg na format .png, ponieważ JPEG nie obsługuje przezroczystości. Następnie użyj tego polecenia:

convert image1.png -fuzz 20% -transparent white result.png

Opcja -fuzz pozwala na zamianę określonego odchylenia procentowego od koloru czystej bieli na przezroczysty. Jest to przydatne, na przykład, gdy obraz zawiera szum lub subtelne gradienty.

 55
Author: NewUser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-24 21:34:53

Właśnie znalazłem bardzo zgrabną rzecz!

magicwand 1,1 -t 20 -f image -r outside -m overlay -o 0 image.jpg imgOutput.png

Jest to skrypt bash Freda Weinhausa, który można pobrać z tutaj (Tylko do użytku niekomercyjnego). Ponadto istnieje około 250 skryptów!! a ten jest niesamowity! to zrobił dokładnie sztuczkę, aby usunąć wszystkie tło, zachowując wewnętrzne kropki obrazu nietknięte!

Na jego stronie znajduje się kilka obrazów jako przykładów, więc wybierz to, co chcesz umieścić w wierszu poleceń!

Pozycja początkowa 1,1 jest ogólnym domysłem mówiąc, że cały kontur jest tłem.

Zwróć uwagę, że wyjście musi być ".png "

 9
Author: Aquarius Power,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-30 23:08:40

To jest moje rozwiązanie bez magicwand (zastąp magick przez convert Dla im

magick img.png -fuzz 20% -fill none -draw "alpha 1x1 floodfill" result.png
 2
Author: roipoussiere,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-05 09:37:00