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.

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


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.


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ᴀᴅᴇʀ

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.