Ich schrieb ein Skript, um meinen Hintergrund auf meiner Linux-Maschine zu einem zufälligen Bild aus einer Reihe von Bildern zu ändern, die nur Volltonfarben enthalten. Was ich tun möchte, ist dieses Skript so zu erweitern, dass bestimmte Anwendungen (hauptsächlich terminale) entsprechend gestaltet werden, zumindest um die Textfarbe zu ändern, möglicherweise von dunklem zu hellem Hintergrund usw. Ich habe mich gefragt, welche Möglichkeiten ich haben muss Erhalte den Hex-Code für die Farbe im Bild. Gibt es etwas in bash, mit dem ich das machen kann? Müsste ich ein Programm in einer robusteren Sprache schreiben und den Hex-Code ausgeben lassen? Gibt es einen besseren Weg, dies vollständig zu tun? Mein bisheriges Suchen war ein wenig ergebnislos.Wie erhält man einen Hex-Farbcode aus einem Volltonbild für ein Skript?
Antwort
Ich würde dringend empfehlen, ImageMagick für diese Aufgabe zu verwenden. Die documentation erwähnt, wie Sie Daten aus einem Bild extrahieren.
Von „Extrahieren der durchschnittlichen Farbe“:
Die durchschnittliche Farbe eines Bildes kann durch die Verwendung „-Skala“ sehr schnell gefunden werden, um ein Bild zu einem einzelnen Pixel zu reduzieren. Hier ist zum Beispiel die durchschnittliche Farbe des eingebauten "rose:" Bildes. Ich gebe die Farbe mit dem FX-Escape-Format aus, das eine Farbzeichenfolge zurückgibt, die direkt IM ohne Änderung verwendet werden kann.
[email protected]:~$ convert rose: -scale 1x1\! -format '%[pixel:s]\n' info:-
Will Ausgang:
srgb(146,89,80)
In Ihrem Fall ersetzen rose:
mit einer Image-Datei von Ihnen, wie foo.png
.
Wenn Sie die Ausgabe direkt in Hex-Notation möchten, verwenden Sie diese:
convert rose: -scale 1x1\! -format '%[pixel:s]\n' info:- | awk -F '[(,)]' '{printf("#%x%x%x\n",$2,$3,$4)}'
Danke! Weißt du irgendeinen Weg, es direkt auf den Hexadezimalwert ausgeben zu lassen? Ich bin mir sicher, dass es da ist, aber wenn Sie es sofort wissen, könnte es schneller sein, als wenn ich die Dokumentation danach suche. Wenn nicht, kann ich wahrscheinlich einen Weg finden, es zu konvertieren. –
Entschuldigung, ImageMagick ist eine absolute Hündin, mit der man arbeiten kann. Es ist mächtig, aber es hat 0 Dokumentation und die Tatsache, dass die gleichen Wörter in verschiedenen Kontexten verwendet werden, macht es extrem schwierig zu googeln. –
@ChristopherLeggett Ich habe auch eine neue Frage [hier] (https://stackoverflow.com/questions/47983587/how-can-imagemagick-output-hex-colours-instead-of-srgb) gestellt, so dass wir versuchen und finden können eine Lösung zusammen. –
- 1. Wie erhält man einen Wert aus einem Datenrahmen in Pandas?
- 2. Wie erhält man einen bestimmten Wert aus einem Array für ein benutzerdefiniertes Objekt?
- 3. Boost: Wie erhält man einen Teilbaum aus einem vorhandenen Eigenschaftsbaum?
- 4. Wie erhält man Parameternamen aus einem Ausdrucksbaum?
- 5. Wie erhält man ein gestapeltes Flächendiagramm für einen kategorisierten Datenrahmen?
- 6. Geb - Wie erhält man den aktuellen Browsernamen aus dem Skript?
- 7. einen Skript aus einem anderen Skript ausgeführt
- 8. Wie erhält man den Statuscode für dynamisch erstellte Skript-Tags?
- 9. Wie erhält man einen Formulareingabewert?
- 10. Wie erhält man einen Unterformularfeldwert?
- 11. Wie man ein ausgewähltes Element aus einer ListPreference erhält
- 12. Wie man einen Hintergrundprozess in einem Skript
- 13. Wie definiert man einen systemweiten Alias für ein Python-Skript?
- 14. Wie erhält man den Tree-Hash für einen bestimmten Verzeichnisnamen?
- 15. Wie erhält man ein paar Wörter aus einem Text mit einem bestimmten Wort in diesem Auszug?
- 16. Wie erhält man einen einzelnen Wert aus mehreren auswählbaren Optionen?
- 17. erhält einen Zeitstempel von der Eingabe in einem Shell-Skript
- 18. Wie erhält man einen Schlüssel und einen Wert optimal aus einem Objekt, das aus einem Paar besteht?
- 19. Wie erhält man einen minimalen Schlüssel aus funktionalen Abhängigkeiten?
- 20. Wie ein Skript aus einem anderen Skript in Python starten
- 21. Wie fügt man einen Import in ein Skript ein?
- 22. Wie erhält man einen Wert in einem ListView nach Position?
- 23. Wie erhält man einen bestimmten Wert aus einer Zeichenkette?
- 24. Wie erhält man Werte aus einem mehrdimensionalen Array in Twig?
- 25. Wie man einen Statuscode von einem remote ausgeführten Shell-Skript an ein lokales Shell-Skript zurücksendet
- 26. Wie führe ich ein Shell-Skript aus einem AppleScript aus?
- 27. Wie erhält man einen Eingabetextwert mit formID?
- 28. Wie erhält man ein längeres Provisioning-Profil?
- 29. Wie erhält man einen Stringteil nach einem Breitenwert?
- 30. Wie erhält man einen bestimmten Kindwert von einem Kind?
Also, wenn ich Sie richtig verstehe, wollen Sie ein Bild machen als Ein- und Ausgang der (und ein x, y-Koordinatenpaar) Farbe als Hexadezimalwert? –
Ja, so etwas, wenn es einen besseren Weg gibt, einen Farbcode zu bekommen, der funktioniert. Wie gesagt, in diesem Fall handelt es sich um einfarbige Bilder. Es ist wahrscheinlich etwas ziemlich Einfaches, aber meine Suchen haben mir nicht wirklich alles gegeben, was ich in einem Skript oder einer Programmiersprache verwenden kann, und ich war nicht in der Lage, irgendwelche bereits existierenden Werkzeuge zu finden, die das tun, was ich will. –