RGB in CMYK umwandeln, ICC-Profil verwenden

8

Ich werde RGB-Farbe zum Drucken in CMYK umwandeln. Maßstab dieser Konvertierung ist Adobe Photoshop ( Image -> Mode -> CMYK color )

Ich habe versucht 2 Lösung, aber keiner von ihnen gibt den richtigen Wert zurück:

Lösung 1 - Verwenden von .NET Framework

Zuerst folgte ich diesen Schritten

  • Laden Sie ICC-Profile (Windows-Version) von Adobe herunter

    >
  • Konvertiere die #color zu CMYK

  • verwendet System.Windows.Media.Color.FromValues // return Color MSDN

  • string convretedColor = string.Format("#{0:X2}{1:X2}{2:X2}", _color.R, _color.G, _color.B)

Hier ist das Ergebnis:

  • Profil: CoatedFOGRA27.icc

  • Originalfarbe: #2f00ff

  • Konvertierte Farbe: #3b4996

  • Ergebnis der Konvertierung Mit Adobe Photoshop (gleiches Profil): #3b4996 nicht einmal in der Nähe!

Lösung 2 - Verwenden von Windows Color System (WCS)

Ich probierte auch die Codo-Lösung mit derselben Prozedur

aus

Hier ist das Ergebnis:

  • Profil: CoatedFOGRA27.icc

  • Originalfarbe: #2f00ff

  • Konvertierte Farbe: #2032FF

  • Photoshop: #3b4996

JSFiddle zum Vergleichen

BEARBEITEN

Nach Codos Kommentaren denke ich, ich habe einige grundsätzliche Probleme, das Farbkonzept zu verstehen !! (Bitte korrigieren Sie mich, wenn ich falsch liege)

Für jede Farbe haben wir verschiedene Farbmodelle, RGB , CMYK , ...

RGB zeigt die Kombination von (Rot Grün Blau) zur Erzeugung von Farbe und CMYK (Cyan Magenta Gelb *). Die Werte dieser Modelle können leicht zueinander konvertiert werden.

zum Beispiel :

  • RGB HEX: #2F00FF

  • RGB: 47 - 0 - 255

  • CMYK: 0,816 - 1,000 - 0,000 - 0,000

Fast alle Monitore verwenden RGB , um die Farben anzuzeigen. Die gedruckte Farbe (wegen der Verwendung von Tinte anstelle von LED o ...) ist völlig anders als die Farbe, die Sie auf Monitor /

sehen

Bildbearbeitungsprogramme wie Photoshop verwenden für dieses Problem CMYK **MODE** . Wenn Sie in diesem Modus die Farbe RGB auswählen, konvertiert der Editor sie in die Farbe, die Sie nach dem Drucken sehen und zeigt diese an. Diese Konvertierung ist absolut abhängig von Farbprofilen (hier ICC)

EDIT 2

    
Mironline 16.08.2013, 11:57
quelle

3 Antworten

5

Lassen Sie mich versuchen, Ihnen zu helfen, alles zu sortieren:

1) RGB ist ein Format zur Beschreibung eines Farbwerts. d. h .: 255,0,0 für Rot.

2) HSV ist ein anderes Format, um einen Farbwert zu beschreiben. d. h .: 0,100,100 für rot

Diese beiden sind die einzigen, die Ihnen die digital genaue Farbe geben, Sie können sich diese als digitale Repräsentation der Farbe vorstellen oder es ist echte DNA und dank Gott ist der Monitor in der Lage, sie darzustellen - genau für das, was sie sind.

Gehen wir weiter:

3) Lab ist ein anderes Format, um einen Farbwert zu beschreiben.

54,81,70 für rotes RGB, das ist (255,0,0) jedoch ..
54,81,70 kann auch auf einen anderen RGB angewendet werden. (254,0,0)

warum ist das? weil das Lab-Format dazu dient, die menschliche Sehkraft zu approximieren.
und für das menschliche Auge gibt es keinen Unterschied zwischen (255,0,0) und (254,0,0) gut .. nicht wirklich genau das zu sagen, dass für das menschliche Auge ..
genauer gesagt, das Modell, das verwendet wird, um die Lab-Farbe zu erhalten, die beabsichtigt, ..

4) CYMK soll dem Drucker mitteilen, welche Mischung aus Cyan, Gelb und Magenta auf das Papier und K (Taste oder Schwarz) drücken soll, wie viel Dunkel in diese Mischung eingedrückt werden soll.

Also 0%, 100%, 100%, 0% geben uns die Mischung für rot ..
und 0%, 50%, 50%, 0% geben uns rosa.

Gehen wir weiter:

Sie müssen das RGB, das auf dem Monitor angezeigt wird, auf den CMYK-Wert des Druckers einstellen.
Gott weiß, warum Sie das tun wollen, wenn es seit Jahren vollautomatisch ist und vom Fahrer gehandhabt wird.
Aber ich nehme an, du hast deine Gründe, also lass uns weitermachen Jeder Drucker hat etwas andere CMYK-Werte, die gemischt werden müssen, um zu diesem bestimmten Rot zu gelangen.

Und hier kommen ICC-Profile zum Einsatz.
Sie geben einen Standard für RED im Beispiel, indem sie eine Tabelle für (1) das ursprüngliche RGB-RED bereitstellen und (2) das CMYK-Rot in einem bestimmten Drucker.

Die Konvertierung von RGB (Rot) nach CMYK (Rot) entsprechend einem ICC-Profil ist logisch zu wünschen.

Aber wenn Sie versuchen, zurück zu konvertieren - Sie werden feststellen, dass der CMYK für RED nach einem bestimmten Profil mehrere digitale ROT-Werte haben kann.

Dies liegt daran, dass die digitale Farbauflösung viel genauer ist als das, was herauskommt Ein gedrucktes Papier, eine andere Möglichkeit, es zu betrachten, ist zu sagen, dass ein bestimmter Drucker ICC auf Lab gebaut worden sein könnte.

Jetzt weiß ich .. Ich weiß .. Sie wussten wahrscheinlich schon die meisten, wenn nicht alle davon.
(Ich schrieb es nur um sicher zu sein, dass wir beide auf der gleichen Seite im Buch sind.)

Also, wenn du sagst "keiner von ihnen gibt den richtigen Wert zurück" (Angenommen sie = die Konvertierungen) was genau meinst du ?! Alles scheint mir richtig zu sein, denn tatsächlich geben sie den richtigen Wert zurück - zu Druckzwecken.

    
G.Y 25.08.2013 04:56
quelle
3

Wie ich die Theorie sehe ...

Die Farbskala von CMYK selbst ist etwas kleiner als RGB, so dass der Unterschied nach der Konvertierung von RGB- & gt; CMYK leicht sichtbar ist. Um diesen Unterschied zu kompensieren, werden Farbprofile verwendet. Farbprofil im Inneren ist eigentlich eine Reihe von Farbtransformationen, die es erlaubt, den Gamut zu vergrößern. In diesem Fall ist die Bildquelle nur eine Quelle für diese Transformationen.

CMYK wird fast immer mit Farbprofilen verwendet (ich meine korrekte Anwendungsfälle), da sonst der Farbverlust erheblich ist.

Konvertieren Sie in Photoshop hier: Bearbeiten - & gt; In Profil konvertieren Der Hauptunterschied von Ihrem Weg - Sie können Ziel CMYK-Profil und Farbmanagement-Engine einschließlich Microsoft ICM wählen, die Ihnen unterschiedliche Ergebnisse liefern könnte.

Hier ist ein guter Artikel über CMYK: Ссылка

Zum Programmieren ...

Vielleicht ist es einfacher, ein spezielles SDK für die Bildverarbeitung zu verwenden. Farbmanagement ist ein grundlegendes Merkmal von jedem von ihnen und sollte sogar kostenlos verfügbar sein.

Wenn Sie abschätzen müssen, wie Ihre RGB-Farbe tatsächlich gedruckt wird, müssen Sie die Funktion "Softproof" verwenden. Dies ist RGB - & gt; CMYK (mit Druckerprofil) - & gt; RGB-Konvertierung In Photoshop können Sie es hier überprüfen: Ansicht - & gt; Proof Farbe. Sie können dasselbe mit SDKs machen.

    
Eugene 17.08.2013 04:58
quelle
1

Vielleicht hilft dieses (nicht getestete) Snippet ein bisschen - es verwendet die .NET API für ImageMagick .

%Vor%

Wenn Sie die Befehlszeile verwenden können, wird dies auch den Job tun:

%Vor%     
Jost 26.08.2013 17:16
quelle