Julian von Mendel: Farben invertieren & CMYK -> RGB -> CMYK

Hi!

Wie kann ich denn mit PHP eine Farbe (RGB) invertieren? So schwarz nach weiß usw.
Und außerdem möchte ich eine RGB-Farbe nach CMYK konvertieren und andersrum. Für CMYK hab ich mit Google nix gefunden, nur für HSB.

Schöne Grüße
Julian

--
"Wer in die Fußstapfen anderer tritt, hinterlässt selbst keinen Eindruck." - Christiane Weinhold
  1. Hi,

    Wie kann ich denn mit PHP eine Farbe (RGB) invertieren? So schwarz nach weiß usw.

    Ich gehe mal von Paletten-Bildern aus, also dass man maximal 256 Farben zur Verfügung hat (wichtig für die Performance). Dabei muss man IIRC die einzelnen Werte einfach XOR 255 rechnen. Nun könnte man natürlich Pixel für Pixel umkehren, was aber _sehr_ unperformant ist. Stattdessen kann man in PHP mittels imagecolorset() (http://www.php.net/manual/en/function.imagecolorset.php) die Palette des Bildes bearbeiten - man hat also maximal 256 Vertauschungen. Also du benötigst:

    1. imagecolorstotal() um die Anzahl der Farben zu bestimmen
    2. evtl. imagetruecolortopalette(), falls 1. 0 zurückgibt (dann hast du ein Truecolor-Bild)

    in einer Schleife von 0 bis Anzahl der Farben - 1 (die Palette besitzt einen Index von 0 bis max. 255):

    3. imagecolorsforindex() um die Farb-Werte des Paletten-Indexes zu bestimmen
    4. diese R-, G-, B-Farb-Werte XOR 255 rechnen
    5. imagecolorset() um die neuen Farbwerte für diesen Paletten-Index zu setzen

    Und außerdem möchte ich eine RGB-Farbe nach CMYK konvertieren und andersrum. Für CMYK hab ich mit Google nix gefunden, nur für HSB.

    sorry - keine Ahnung.

    Gruß,
    Andreas.

  2. Hallo.

    Und außerdem möchte ich eine RGB-Farbe nach CMYK konvertieren und andersrum. Für CMYK hab ich mit Google nix gefunden, nur für HSB.

    Das verwundert kaum. Die grafische Industrie versucht dies seit Ewigkeiten mehr oder minder erfolglos. Farb-Management und Kalibration farbraumübergreifender Systeme sind von zu vielen Faktoren abhängig, die nicht in ausreichendem Maße im Zugriff der Software-Entwickler liegen.
    Außerdem sei angemerkt, dass die gdLib meines Wissens zumindest CMYK-JPEG automatisch in RGB wandelt, so dass du keine weitere Bearbeitungsschritte auf Basis der gdLib an einem CMYK-Bild vornehmen kannst, ohne eine automatische Konvertierung fürchten zu müssen.
    MfG, at

  3. Hallo,

    Ich möchte kein vollständiges Bild umwandeln, nur einen einzelnen Farbwert. Das XOR 255 ist hilfreich, danke.

    Schöne Grüße
    Julian

    --
    "Wer in die Fußstapfen anderer tritt, hinterlässt selbst keinen Eindruck." - Christiane Weinhold