Gradienten programmgesteuert erzeugen?
Gegeben 2 rgb-Farben und einer rechteckigen Fläche, die würde ich gerne zum generieren einer grundlegenden linearen Farbverlauf zwischen den Farben. Ich habe getan eine schnelle Suche und das einzige, was ich habe finden können ist dieser blog-Eintragaber der Beispiel-code zu fehlen scheint, oder zumindest es war, als dieses posting. Alles, was hilft, algorithmen, code-Beispiele, was auch immer. Dies wird in Java geschrieben, aber die display-Schicht ist bereits gesorgt, ich muss nur herausfinden, wie, um herauszufinden, was angezeigt werden soll.
InformationsquelleAutor der Frage Paul Wicks | 2008-08-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
du willst eine interpolation zwischen der ersten und der zweiten Farbe. Interpolieren der Farben ist einfach durch die Berechnung der gleichen interpolation für die einzelnen Komponenten (R, G, B). Es gibt viele Möglichkeiten, zu interpolieren. Der einfachste Weg ist die Verwendung der linearen interpolation: nur Anteil p der ersten Farbe und der Anteil 1 - p der zweite:
Gibt es eine andere Frage damit in Zusammenhang stehen.
Gibt es andere Methoden der interpolation, das manchmal besser funktioniert. Zum Beispiel mit einer bell-förmige (sigmoidale) interpolation-Funktion macht den übergang glatter.
/EDIT: UPS, du meinst die Verwendung einer vordefinierten Funktion. OK, noch einfacher. Der blog-post verlinkt wurde, hat jetzt einen Beispiel code in Python.
In Java, könnten Sie die
GradientPaint
.InformationsquelleAutor der Antwort Konrad Rudolph
Können Sie mit dem eingebauten GradientPaint Klasse.
InformationsquelleAutor der Antwort dbkk
Verwenden der grundlegenden AWT-Klassen, die Sie tun könnten, so etwas wie dieses:
InformationsquelleAutor der Antwort David Crow
Folgenden auf das execllent Antwort von David Crow, hier ist eine Kotlin Beispiel die Umsetzung
InformationsquelleAutor der Antwort Holger Brandl
Habe ich mit RMagick für die. Wenn Sie brauchen, um weiter zu gehen den einfachen Verlauf, ImageMagick und einem der Wrapper (wie RMagick oder JMagick für Java) könnte nützlich sein.
InformationsquelleAutor der Antwort Thibaut Barrère