Partia zastępująca kolor przezroczystością

17

Mam bardzo dużą liczbę obrazów w formacie PNG (zbyt wiele, aby wykonać je pojedynczo) z jasnym różowym tłem i chciałbym zastąpić kolor tła przezroczystością. Jeśli nie jest to możliwe lub szczególnie trudne, przydatne byłoby zastąpienie określonego koloru białym.

Mam GIMP, ale nie Photoshop i nie jestem szczególnie zadowolony z wiersza poleceń, więc jeśli rozwiązanie wymaga tego, proszę pokazać każdy krok. Byłoby wspaniale móc to zrobić, każda pomoc byłaby mile widziana.

ete
źródło

Odpowiedzi:

21

Wiem, że powiedziałeś, że nie czujesz się dobrze z narzędziami wiersza poleceń, ale ImageMagick może to zrobić:

Zamień określony kolor

convert balloon.gif -transparent blue balloon_trans.gif

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

Gdzie balloon.gifjest obraz źródłowy, -transparentokreśla, że ​​chcesz przezroczystego bg,blue jest kolorem, który chcesz zastąpić, i balloon_trans.gifjest gotowym obrazem.

Zakłada się, że Twój „jasny róż” nie jest częścią żadnego z obrazów. Aby nieco bardziej inteligentnie usunąć tło (wypełnienie), zapoznaj się z tym samouczkiem: Maskowanie prostych teł (wypełnienie)

Może to być trochę owłosione, a niektóre z określonych tam opcji prawdopodobnie nie są wymagane do tego, co próbujesz zrobić, więc jak @graphics man sugeruje, abyś mógł dodać background do polecenia


Jeśli możesz mi powiedzieć, jakiego systemu operacyjnego używasz i przykładowego obrazu, mogę pomóc w skrypcie, który zautomatyzuje to dla wielu obrazów


Specyficzne dla twojej sytuacji:

Najpierw zainstaluj ImageMagick . Może być konieczne ponowne uruchomienie po instalacji, aby zmienna PATH została zaktualizowana (zrobiłem)

Po zainstalowaniu uruchom wiersz polecenia (menu Start, wpisz cmd , naciśnij Enter)

Musisz zmienić katalogi, w których zapisane są obrazy. W zależności od sytuacji wprowadź następujące polecenie:

cd C:\Users\Eric\Pictures\pngs\logos

Teraz musimy utworzyć folder, w którym zostaną zapisane wszystkie obrazy:

mkdir batch

A teraz polecenie konwersji wszystkich obrazów:

FOR %G IN (*.png) DO convert "%G" -transparent #FF00FF "batch\%G"

Uwaga: W programie ImageMagick v7 używaj magickzamiast converttego

FOR %G IN (*.png) DO magick "%G" -transparent #FF00FF "batch\%G"

Jeśli wszystko poszło gładko, nowo zapisane obrazy powinny znajdować się w utworzonym folderze wsadowym.

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

JohnB
źródło
1
dobre rozwiązanie, jeśli ktoś zastanawia się nad równoważnym linuksem bash: dla pliku w * .png; wykonaj konwersję „$ {plik}” -transparent '# ffcc66' „batch / $ {file}”; gotowe
Sameer Shemna
W przypadku komputerów Mac wydaje się, że jest to powiązane: superuser.com/questions/773590/... Dzięki!
Dan Rosenstark,
To nie działa tak jak Gimp. Jeśli masz biały piksel z alfa 0,5 na czarnym pikselu i chcesz usunąć czarny kolor, szary piksel pozostanie.
Iulian Onofrei
3

Jeśli korzystasz z gimpa i nie chcesz iść Imagemagick możesz rzucić okiem na David Batch Processor (DBP) . Jest to wtyczka do gimp do przetwarzania wsadowego. Uwaga : nigdy go nie używałem ani nie testowałem, ale było to coś, co widziałem wcześniej. Jeśli masz program Photoshop, mógłbym pokazać, jak korzystać z partii lub akcji.

DᴀʀᴛʜVᴀᴅᴇʀ
źródło
Mam to i wykorzystałem to do masowego przycinania tych obrazów, ale wydaje się, że nie ma żadnej opcji zastąpienia kolorów. Może jednak tęsknię lub mam starą wersję?
ete
Nie wiem. Po prostu znam wtyczkę, ponieważ klient używał jej do masowej edycji obrazów i pojawiał się błąd. Jak napisał John, Imagemagick jest potężną opcją i może rozwiązać wszystkie twoje problemy. Tam strona jest bardzo szczegółowa. Sprawdźcie imagemagick.org/script/index.php
DᴀʀᴛʜVᴀᴅᴇʀ