Eine Farbe in eine andere ändern?

109

In GIMP habe ich ein GIF-Bild mit einer grünen Schaltfläche: Es wird von dunkelgrün bis hellgrün vor einem transparenten Hintergrund angezeigt. Ich möchte es in Blau ändern und die Schattierung beibehalten, damit es von Dunkelblau zu Hellblau wechselt.

Wie kann ich das machen?

Braiam
quelle

Antworten:

82

Wenn Sie ein GIF-Bild laden, haben Sie wahrscheinlich ein palettiertes Bild. Stellen Sie sicher, dass Sie zuerst RGB wählen: BildModusRGB . Das Ändern von Farben (einschließlich Größenänderungen) funktioniert mit Paletten nicht besonders gut, da Gimp die Auswahl der Farben auf die in der Palette definierten Farben beschränkt.

Ich schlage vor, den Farbton in FarbenFarbton-Sättigung zu drehen .

Ein erstes Bild wie dieses vorausgesetzt:

grüner Farbverlauf

Sie ändern den Farbton, indem Sie zuerst auf Master klicken, dann den Schieberegler für den Farbton ziehen und dann Helligkeit und Kontrast nach Ihren Wünschen anpassen.

Passen Sie den Farbton in Farben an -> Farbton-Sättigung

Das Ergebnis sieht so aus:

blauer Farbverlauf

Sie können es leicht kälter oder wärmer, dunkler oder heller, mehr oder weniger gesättigt machen.

Sastanin
quelle
3
Gute Antwort. Wenn Ihre Schaltfläche einen Rahmen enthält, ändert sich auch die Farbe. Um dies zu vermeiden, wählen Sie mit dem Auswahlwerkzeug nur den Bereich aus, den Sie neu einfärben möchten, und führen Sie dann Farbton-Sättigung aus.
Lee Harrison
1
Was ist, wenn ich das Bild auf einen bestimmten RGB-Wert ändern möchte?
Aaron Franke
77

Wenn Sie GIMP 2.8.2 verwenden, können Sie es einfach verwenden Colors -> Map -> Color Exchange.

Quelle: Wie kann ich Farben mit GIMP tauschen?

Patricio
quelle
2
Dies scheint auch nur in der Lage zu sein, auf einen angeklickten Bereich zusammenhängender Pixel zuzugreifen, nicht auf alle ausgewählten Pixel. Wie ich oben kommentiert habe, färbt dies das Pixel ein, auf das ich es aufrufe. Bei Auswahl nach Farbe wurden Hunderte von Pixeln im gesamten Bild ausgewählt.
ProfK
3
@ProfKaos Es funktioniert gut für mich. Falls ich nichts ausgewählt habe, ändert Color Exchange alle Pixel im gesamten Bild.
MasterPJ
3
Ich suche eine mathematische Transformation. Ich konvertiere # 650000 in # 590000, also sollte ich in der Lage sein, -060000 auf jeden Pixel anzuwenden, aber ich sehe keinen einfachen Weg ...
Isaac
Sie können auch "Farben -> Karte -> Verlaufskarte" verwenden, um die Verläufe zu ändern. Sehr nützlich
Javier Constanzo
1
Das ist die Antwort. Durch Anpassen des Schwellenwerts kann man auch die Farbtöne bearbeiten (z. B. bei Schranken mit geglätteten Zeichen)
Csaba Toth
20

Sie suchen Menü Farben und vor allem die Funktion Kolorieren .

Bobby
quelle
3
Das färbt nur das Pixel ein, auf das ich es aufrufe. Bei Auswahl nach Farbe wurden Hunderte von Pixeln im gesamten Bild ausgewählt.
ProfK
1
Hält das die Schattierung, die sich aus Schattierungen von Dunkelblau bis Hellblau ergibt?
Peter Mortensen
8

Um eine Farbe in eine andere Farbe zu ändern, empfehle ich Colorify .

Angenommen, wir möchten die blaue Farbe (# 05adee) des Superuser-Logos in eine grüne Farbe in der Nähe von # 05ad27 ändern.

  1. FarbenFarbe zu Alpha : Wählen Sie die Sekundärfarbe aus, die transparent gemacht werden soll (in unserem Beispiel weiß).

Bildbeschreibung hier eingeben

  1. FarbenKolorierenBenutzerdefinierte Farbe : Wählen Sie die Zielfarbe und addieren Sie ca. 10-40 zum Wert (des HSV).

Bildbeschreibung hier eingeben

  1. Stellen Sie die Sekundärfarbe als Hintergrundfarbe ein (in unserem Beispiel weiß)
  2. BildBild reduzieren

Verwendung von GIMP 2.8.6.

Marco Lackovic
quelle
1
Funktioniert das mit einer Schattierung, Schattierungen von dunkelblau bis hellblau?
Peter Mortensen
1
Ja. Wenn Sie in die beiden von mir veröffentlichten Beispiele zoomen, werden Sie feststellen, dass die Schattierungen ordnungsgemäß geändert wurden.
Marco Lackovic
Dies macht mein Bild viel dunkler als es sein sollte. Kann ich einen Farbverlauf durch einen anderen Farbverlauf ersetzen?
Aaron Franke
5

Die erste erfolgreiche Methode, mit der ich das Gleiche tat, war die Verwendung von ImageMagick, jedoch mit einem anderen Operator als dem zuvor vorgeschlagenen --separate / -swap.

Der unterschiedliche Operator ist je nach ImageMagick-Version entweder -recolor oder -color-matrix.

Insbesondere, weil ich eine "Hauptfarbe" des Originalbildes (in Ihrem und in meinem Fall Grün) kannte und die "Hauptfarbe" in dem gewünschten Ergebnisbild (in Ihrem Fall Blau, in meinem Fall Orange) kannte, gab ich ImageMagick '-recolor / -color-matrix-Option eine Transformationsmatrix mit Werten, die die Unterschiede in jedem der RGB-Kanäle widerspiegeln.

In meinem Fall war die vollständig grüne Farbe beispielsweise R: 141 G: 198 B: 63, und ich wollte, dass sie in R: 231 G: 159 B: 70 geändert wird. Der Rest der Farben wollte gleichwertig geändert werden.

Das heißt, ich wollte, dass der R-Wert neuer Pixel 231 / 141stel des aktuellen Rotwerts beträgt. Grüne Werte müssen 159/198 der aktuellen Werte sein. Und die blauen Werte betragen 63/70 der aktuellen Werte.

Damit:

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

oder

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

oder

Dies schien blitzschnell zu funktionieren, nachdem man viel Zeit vergeblich mit Gimp / plugins und paint.net/plugins gerungen hatte.

Alex Robinson
quelle
3
  1. Ändern Sie Ihre Vordergrundfarbe zu Ihrer gewünschten Farbe. (zum Beispiel blau in deinem Fall)
  2. Ändere den Hintergrund in Weiß oder so
  3. Öffnen Sie das Verlaufswerkzeug und setzen Sie FG auf BG oder FG auf transparent.
  4. Bereich oder Farbe mit 'Nach Farbe auswählen' auswählen
  5. Farben -> Karte -> Verlaufskarte
brüllen
quelle
2

Ich weiß nicht, wie das in GIMP geht, aber ImageMagick verfügt über Funktionen zum Trennen und Kombinieren von Farbkanälen. Siehe diese Seite .

Mit diesem Befehl konnte ich eine grüne GIF-Datei in eine blaue konvertieren:

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

Ich vermute, dass 1 und 2 sich auf grüne und blaue Kanäle beziehen, 0 ist rot.

W_Whalley
quelle
2

Wenn Sie den Farbton mit einer vorhandenen Bildfarbe aktualisieren, wird der Farbton mit diesen Ebenen eingeleitet ... Zuerst muss ein weißer #fff-Hintergrund erstellt werden. Ich tat

Farben -> Kolorieren Sie und stellen Sie die HUE-Helligkeit auf 100 ... dies entfernt alle Farben aus Ihrem Bild.

Dann können Sie Farben -> Kolorieren verwenden und die gewünschte Farbe anwenden.

Mario Ruiz
quelle
1

Bei einfachen kleinen Grafiken zoome ich viel und ändere die Farben dann selbst mit dem Pinsel.

Ändern Sie einfach die Pinselgröße auf 1 Pixel.

Ed B
quelle
4
-1 Das ist nicht praktisch, wenn es einen Farbverlauf gibt, Sie müssten Dutzende verschiedener Farben ändern.
sleske
1
Die beiden oben genannten Gimp-Lösungen sind nicht viel besser, also sehe ich so aus, als würde ich daran festhalten.
ProfK