• Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2025
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien und Schutzgläser der Eigenmarken
    "Upscreen", "Screenleaf", BROTECT" und "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Mitmachen beim DSLR-Forum Fotowettbewerb August 2025.
    Thema: "Kurven"

    Jeden Monat attraktive Gewinnprämien, gesponsert von unserem Partner PixelfotoExpress.
    Alle Infos zum August-Wettbewerb hier!
  • In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • Nicht erreichbare Adressen im Benutzerkonto
    Wir bekommen zurzeit eine große Anzahl an E-Mails, die das System zum Beispiel als Benachrichtigungen an Nutzer verschickt,
    als unzustellbar zurück, weil z.B. die Adressen nicht erreichbar sind oder das Postfach gar nicht existiert.
    Stellt doch bitte sicher, dass die Benachrichtigungen, die ihr vom System erwartet, auch zugestellt werden können.
    Nicht erreichbare E-Mail-Adressen sind dazu wenig hilfreich.
    Danke!
WERBUNG

Farbwerte eines Bildes bestimmen und ausgeben

Mäse

Themenersteller
Hallo zusammen

Ich stehe vor einer, für mich bisher, unlösbaren Aufgabe. Folgende Problemstellung habe ich:

- Mehrere Tausend Bilder von Produkten in der folgenden Art:
WD020505200404.jpg

- Die Artikelnummer des Produkts ist der Dateiname (also z.B. WD020505200404.jpg )


Ziel

Ich erhalte die zur Artikelnummer gehörende "Durchschnittsfarbe" des Bildes in Form z.B. RGB-Code ausgegeben.

Anknüpfungspunkt
Ohne jetzt Profi in Sachen EBV zu sein, hab ich mir überlegt, die Bilder jeweils per Photoshop auf 1x1 Pixel zu skalieren, dann hätte ich m.M. die Durchschnittsfarbe bestimmt.

Nur, wie bringe ich den Farbcode "automatisch" heraus? Meine Idee ist, die Artikelnummer (also ursprünglicher Dateiname)und RGB-Code als neuen Dateinamen auszugeben.

Mal generell, hat irgendjemand eine Idee, wie eine solche Problemstellung am Besten angegangen werden kann, ohne jedes einzelne Bild öffnen zu müssen und die Farbe zu bestimmen?

Vielen Dank und meine ewige Dankbarkeit ist Euch gewiss;)

Lg
Mäse
 
Hohen Radius für Pipette einstellen und Vordergrundfarbe wählen. Ob eine Aktion dann den
in die Zwischenablage kopierten RGB-Code mit aufnimmt hab ich jedoch noch nie probiert.

Was aber gehen könnte ist ein neues Farbfeld anzulegen und dann per Stapelverarbeitung
eine Aktion angeben welche die Durchschnittsfarben aufnimmt und in der Farbpalette ablegt.
Palette dann so schmal machen das 10 Felder Platz haben. So bräuchtest du zumindest nicht
mehr alle Dateien einzeln öffnen.
 
Zuletzt bearbeitet:
Du könntest z.B. die Programmiersprache Python mitsamt der Erweiterungen Pillow und numpy installieren. Anschliessend legst du dir folgendes Script auf den Desktop:
Code:
import os,sys,numpy,string
from PIL import Image
for i in range(1,len(sys.argv)):
    im = numpy.asarray(Image.open(sys.argv[i]))
    R = str(int(round(numpy.average(im[:,:,0]),0)))
    G = str(int(round(numpy.average(im[:,:,1]),0)))
    B = str(int(round(numpy.average(im[:,:,2]),0)))
    n = string.split(sys.argv[i],".")[0]
    os.rename(sys.argv[i],n + "_" + R + "_" + G +  "_" + B + ".jpg")

Name egal, wichtig ist die Endung .py . RGBName.py würde gehen. Dann markierst du deine paar tausend Dateien und ziehst sie auf das Icon des Scripts. Prompt werden sie nach deinen Konventionen umbenannt. Klappt unter Linux (Python2.*), sollte aber unter Win oder Mac auch gehen.

Die gesparte Zeit kannst du nutzen, um ein wenig über Python nachzulesen - aber die Sprache ist fast selbsterklärend. Selber Programmieren macht übrigens Spass und schlau und kann sogar für innerbetriebliches Ansehen sorgen.
 
Wow, ich bin einmal mehr vom Forum beeindruckt:top:

Muss mir das mal im Detail anschauen, aber scheint so, als könnte man sowas tatsächlich umsetzen. Vielen herzlichen Dank schon jetzt!

Sollte noch jemand ne Idee haben, immer gerne:)
 
Das von mir verlinkte Script müsstest Du in einer Aktion aufrufen und die dann in einer Stapelverarbeitung (nachdem Du ordentlich getestet hast natürlich).

Das Script verändert den Dateinamen in "Rotwert GrünwertBlauwertDateiname", da fehlen noch ein paar Leerzeichen:
Code:
// Save image with RGB values before the original filename (with a space between each RBG value).
mySaveName = rgb_R + " " + rgb_G + rgb_B + myFileName;

Schöner wäre es mit
Code:
// Save image with RGB values before the original filename (with a space between each RBG value).
mySaveName = rgb_R + " " + rgb_G + " " + rgb_B + " " + myFileName;

Wenn Du den alten Dateinamen nach vorne möchtest
Code:
// Save image with RGB values before the original filename (with a space between each RBG value).
mySaveName = myFileName + " " + rgb_R + " " + rgb_G + " " + rgb_B;
 
WERBUNG
Zurück
Oben Unten