Zmienić jeden kolor na inny?

109

W GIMP mam obraz GIF z zielonym przyciskiem: zmienia kolor z ciemnozielonego na jasnozielony na przezroczystym tle. Chciałbym zmienić go na niebieski i zachować cieniowanie, aby zmieniło kolor z ciemnoniebieskiego na jasnoniebieski.

Jak mogę to zrobić?

Braiam
źródło

Odpowiedzi:

82

Jeśli załadujesz obraz GIF, prawdopodobnie masz obraz z paletą. Najpierw zmień go na RGB za pomocą: ObrazTrybRGB . Zmiana kolorów (w tym operacje zmiany rozmiaru) nie działa zbyt dobrze z paletami, ponieważ Gimp ogranicza wybór kolorów do kolorów zdefiniowanych w palecie.

Sugeruję obracanie Barwy w KolorachNasycenie Barwy .

Biorąc pod uwagę początkowy obraz taki jak ten:

zielony gradient

Najpierw zmieniasz Barwa, klikając Master, a następnie przeciągając suwak Barwa, a następnie dostosowując Jasność i Kontrast do własnych upodobań.

Dostosuj odcień w kolorach -> Nasycenie odcienia

Wynik wygląda następująco:

niebieski gradient

Możesz łatwo uczynić go zimniejszym lub cieplejszym, ciemniejszym lub jaśniejszym, bardziej lub mniej nasyconym.

sastanina
źródło
3
Dobra odpowiedź. Jako dodatkową notatkę, jeśli twój przycisk zawiera ramkę, zmieni to również jego kolor. Aby tego uniknąć, użyj narzędzia zaznaczania, aby wybrać tylko obszar, który chcesz ponownie pokolorować, a następnie uruchom Nasycenie odcieniem.
Lee Harrison,
1
Co jeśli chcę zmienić obraz na podaną wartość RGB?
Aaron Franke,
77

Jeśli korzystasz z GIMP 2.8.2, możesz z niego korzystać w prosty sposób Colors -> Map -> Color Exchange.

Źródło: Jak mogę zamienić kolory za pomocą GIMP?

Patricio
źródło
2
Wydaje się również, że może działać tylko na klikniętym obszarze ciągłych pikseli, a nie na wszystkich wybranych pikselach. Tak jak skomentowałem powyżej, koloruje piksel, na który go wywołuję. Opcja Wybierz według koloru wybrała setki pikseli na całym obrazie.
ProfK
3
@ProfKaos Działa dla mnie dobrze. W przypadku, gdy nie mam nic zaznaczonego, Wymiana kolorów zmienia wszystkie piksele na całym obrazie.
MasterPJ
3
Szukam transformacji matematycznej. Konwertuję # 650000 na # 590000, więc czuję, że powinienem być w stanie zastosować -060000 do każdego piksela, ale nie widzę łatwego sposobu ...
isaaclw
Możesz także użyć opcji „Kolory -> Mapa -> Mapa gradientu”, aby zmienić gradienty. Bardzo przydatny
Javier Constanzo,
1
To jest odpowiedź. Dostosowując próg, można również obsługiwać odcienie koloru (na przykład w przypadku granic wygładzonych znaków)
Csaba Toth
20

Szukasz menu Kolory , a zwłaszcza funkcji Koloruj .

Konstabl
źródło
3
To tylko koloruje piksel, na który go wywołuję. Opcja Wybierz według koloru wybrała setki pikseli na całym obrazie.
ProfK
1
Czy to utrzymuje cieniowanie, co daje odcienie od ciemnoniebieskiego do jasnoniebieskiego?
Peter Mortensen
8

Aby zmienić kolor na inny konkretny, sugeruję użyć Colorify .

Załóżmy, że chcemy zmienić niebieski kolor (# 05adee) logo superużytkownika na zielony w pobliżu # 05ad27.

  1. KoloryKolor na alfa : wybierz kolor dodatkowy, który będzie przezroczysty (w naszym przykładzie biały)

wprowadź opis zdjęcia tutaj

  1. KoloryKolorujKolor niestandardowy : wybierz kolor docelowy i dodaj około 10-40 do wartości (HSV)

wprowadź opis zdjęcia tutaj

  1. Ustaw kolor dodatkowy jako kolor tła (biały w naszym przykładzie)
  2. ObrazSpłaszcz obraz

Korzystanie z GIMP 2.8.6.

Marco Lackovic
źródło
1
Czy to działa z cieniowaniem, odcieniami od ciemnoniebieskiego do jasnoniebieskiego?
Peter Mortensen
1
Tak. Jeśli powiększysz dwie próbki, które opublikowałem, zobaczysz, że odcienie zostały odpowiednio zmienione.
Marco Lackovic
To sprawia, że ​​mój obraz jest znacznie ciemniejszy niż powinien. Czy istnieje sposób na zastąpienie jednego gradientu koloru innym gradientem koloru?
Aaron Franke,
5

Pierwszą skuteczną metodą, jaką znalazłem, aby zrobić to samo, było użycie ImageMagick, ale z innym operatorem niż wcześniej sugerowane - oddzielne / -swap.

Innym operatorem jest -recolor lub -color-matrix, w zależności od wersji ImageMagick.

W szczególności, ponieważ znałem „kolor główny” oryginalnego obrazu (zielony, w twoim przypadku i moim) i znałem „kolor główny” na pożądanym obrazie wyniku (niebieski, w twoim przypadku, pomarańczowy w moim), podałem ImageMagick '-recolor / -color-matrix opcja macierz transformacji z wartościami odzwierciedlającymi różnice w każdym z kanałów RGB.

Na przykład w moim przypadku kolor w pełni zielony to R: 141 G: 198 B: 63 i chciałem, aby został zmieniony na R: 231 G: 159 B: 70. Reszta kolorów chciała zostać równoważnie zmieniona.

To oznacza, że ​​chciałem, aby wartość R nowych pikseli wynosiła 231/141 obecnej wartości czerwonej. Zielone wartości to 159 / 198. bieżącej wartości. Niebieskie wartości to 63 / 70th bieżących wartości.

Więc:

convert input.png -recolor      "1.638297872 0 0    0 0.803030303 0   0 0 1.111111111" output.png

lub

convert input.png -color-matrix "1.638297872 0 0    0 0.803030303 0   0 0 1.111111111" output.png

lub

Wydawało się, że działa to błyskawicznie po bezowocnym spędzaniu dużo czasu na zmaganiach z Gimp / plugins i paint.net/plugins.

Alex Robinson
źródło
3
  1. Zmień kolor pierwszego planu na żądany kolor. (na przykład niebieski w twoim przypadku)
  2. Zmień tło na białe lub coś takiego
  3. Otwórz narzędzie gradientu i ustaw FG na BG lub FG na przezroczyste.
  4. Wybierz obszar lub kolor za pomocą opcji „Wybierz według koloru”
  5. Kolory -> Mapa -> Mapa gradientu
roel
źródło
2

Nie wiem, jak to zrobić w GIMP, ale ImageMagick ma funkcje do oddzielania i łączenia kanałów kolorów. Zobacz tę stronę .

Byłem w stanie przekonwertować zielony plik GIF na niebieski za pomocą tego polecenia:

convert input.gif -separate -swap 1,2 -combine output.gif

Myślę, że 1 i 2 odnoszą się do kanałów zielonego i niebieskiego, 0 to czerwony.

W_Whalley
źródło
2

Jeśli zaktualizujesz HUE istniejącym kolorem obrazu, odcień zostanie zainicjowany na tych poziomach ... Najpierw musisz utworzyć białe tło #fff. Zrobiłem

Kolory -> Pokoloruj i ustaw jasność HUE na 100 ... spowoduje to usunięcie dowolnego koloru z obrazu.

Następnie możesz użyć opcji Kolory -> Koloruj i zastosować żądany kolor.

Mario Ruiz
źródło
1

Na prostej małej grafice powiększam dużo, a potem sam zmieniam kolory za pomocą pędzla.

Wystarczy zmienić rozmiar pędzla na 1 piksel.

Ed B.
źródło
4
-1 To nie jest praktyczne, jeśli występuje gradient, musiałbyś zmienić dziesiątki różnych kolorów.
śleske
1
Dwa powyższe rozwiązania Gimp nie są dużo lepsze, więc wygląda na to, że utknąłem z tym.
ProfK