AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CMYK jpgs in RGB umwandeln

Ein Thema von S.Langhammer · begonnen am 8. Okt 2013 · letzter Beitrag vom 10. Okt 2013
Antwort Antwort
S.Langhammer

Registriert seit: 28. Mai 2013
23 Beiträge
 
Delphi XE3 Enterprise
 
#1

CMYK jpgs in RGB umwandeln

  Alt 8. Okt 2013, 11:50
Hallo alle zusammen.
Vor kurem ist unsere Firmensoftware an ihre Grenzen gestoßen: Eine Textur sah einfach nicht richtig aus.

Der Grund dafür war, das es sich dabei um ein jpg im CMYK-Farbbaum handelte. Nun kann man dem Kunden schlecht sagen, er soll doch die Dateien für die Texturen bitte anders abspeichern, weil der CMYK-Farbbaum von anderen Programmen (Beispielsweise Photoshop oder auch die Window-Bildanzeige) ja richtig dargestellt wird.

Jetzt darf ich mich mit der Erkennung und Umwandlung von jpgs im CMYK-Farbbaum beschäftigen.
Ich hab mich damit schon ein wenig beschäftigt und muss gestehen vieles sind noch böhmische Dörfer für mich.

Mein Stand bisher ist:
- CMYK ist eigentlich der Farbbaum, der für Drucker optimiert ist und den prozentualen Farbanteil abbildet. (Also eigentlich genau das Falsche für die Textur eines 3D-Models. Jedenfalls meiner Meinung nach.)
- Es gibt wohl C/C#/C++-Bibliotheken die das ganze direkt umwandeln können. Damit kann ich aber praktisch nicht viel anfangen.
- Einzelne Farbwerte lassen sich relativ schmerzlos von CMYK zu RPG umrechnen. Da sehe ich aber auch nicht viel Nutzen drin, wenn ich nicht grade vorhab Bilder Pixel für Pixel umzurechnen.

Was ich wirklich bräuchte wäre:
- einen Weg abzufragen, in welchem Farbbaum ein jpg abgespeichert ist
- im Optimalfall vielleicht sogar eine Bibliothek, die schon sowas wie eine CMYKtoRGBfile Prozedur/Funktion enthält
- eine Anleitung wie ich mir eine solche Prozedur/Funktion selber bauen könnte

Viel Erfahrung mit Delphi hab ich noch nicht, speziell jpgs noch gar keine.

Vielen Dank im Voraus!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: CMYK jpgs in RGB umwandeln

  Alt 8. Okt 2013, 13:16
Ein Farbraumwandlung wird immer mit darstellungsverändung/verlust einher gehen.
Besser wäre es eine Komponente zu haben die auch CMYK-JPGs darstellen kann.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: CMYK jpgs in RGB umwandeln

  Alt 8. Okt 2013, 17:16
Auch diese müsste zunächst umwandeln für die Anzeige, oder hast du einen CMYK-Bildschirm?

Die Standard JPEG-Unit von Delphi kann das wohl (TJPEGImage.AutoCMYKtoRGB), einem anderen Forumsbeitrag nach gab es damit Probleme. DeddyH hat dort aber im Delphi-Treff mal diesen Eintrag verlinkt, der sich recht vielversprechend anhört.

Übrigens gefunden durch Bei Google suchenjpg cmyk delphi, erstes Ergebnis genommen, Bei Google suchenAutoCMYKtoRGB aus einer Antwort von dort gesucht, 4. Ergebnis.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
jus

Registriert seit: 22. Jan 2005
344 Beiträge
 
Delphi 2007 Professional
 
#4

AW: CMYK jpgs in RGB umwandeln

  Alt 8. Okt 2013, 19:00
Die Vampyre Bibliothek enthält bereits implizit eine automatische Umwandlung von CMYK zu RGB bei Jpeg. Sprich wenn du eine Jpeg öffnest, und diese als Bitmap holst, sind die Daten bereits in RGB umgewandelt. Schau dir das Ergebnis an, ob es reicht.

Hallo alle zusammen.
...
Der Grund dafür war, das es sich dabei um ein jpg im CMYK-Farbbaum handelte. Nun kann man dem Kunden schlecht sagen, er soll doch die Dateien für die Texturen bitte anders abspeichern, weil der CMYK-Farbbaum von anderen Programmen (Beispielsweise Photoshop oder auch die Window-Bildanzeige) ja richtig dargestellt wird.
...
Naja, warum kann man es den Kunden nicht sagen? Letztendlich ist Farbmanagement ein nicht zu unterschätzendes Thema. Das sage ich, weil wir aktuell in der Firma an einer Rip-Ansteuerung für Fotodrucker arbeiten. Meist kursieren Näherungsformeln für eine Farbraumtransformation mit von CMYK zu RGB mit irgendwas z.B. "Red:=254-(111*Cyan+2*Magenta+7*Y+36*K)/128" oder so ähnlich. Die von Medium angebenen Links und auch die Vampyre verwenden diese Methode. Aber Photoshop und Windowsfotovorschau verwenden die wesentlich genauere Variante mit ICC Profilen. Wo man ein Quellprofil und ein Zielprofil angeben muß, wobei das Quellprofil noch aus einem JPEG extrahiert werden muß. Mir ist auch derzeit keine Bibliothek bekannt, die neben Öffnen von verschiedenen Grafikformaten implizit ICC Farbmanagementfunktionen anbietet. Lange Rede kurzer Sinn, wenn du mit dem Ergebnis von Vampyre zufrieden bist, dann ist alles gut. Wenn nicht dann wird es wirklich mühsam. Denn so einfach wie es beim Photoshop auch erscheinen mag, ist es leider nicht. Wir mußten uns fast 1 Jahr mit dem Thema unter Mac und Windows herumquälen, um fast idente Ergebnisse für Farbraumtransformation wie Photoshop zu produzieren. Vielleicht ist es einfacher den Kunden mal zu fragen, ob dieser denn nicht vielleicht auch mal gedenkt es in RGB abzuspeichern. Es würde die Sache ungemein beschleunigen.

Geändert von jus ( 8. Okt 2013 um 19:03 Uhr)
  Mit Zitat antworten Zitat
S.Langhammer

Registriert seit: 28. Mai 2013
23 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: CMYK jpgs in RGB umwandeln

  Alt 9. Okt 2013, 12:50
@Bernhard: Das bei der Umwandlung von CMYK in RGB Verluste auftreten ist mir schon bewusst, nur soll das ganze am ende als Textur auf einem 3D-Model in GLScene dienen. Da müsste man der Scene die CMYK-Darstellung beibringen und das geht zum einen noch über meinen Horizont, zum anderen müsste man das ganze dann auch an jedes Update anpassen. Glücklicherweise ist die Umwandlung eher der Ausnahmefall und mit annähernd richtigen Farben kann man schon viel besser leben als mit einer komplett falschen Darstellung.

@Medium: Meine Vermutung war ja fast, das der Kunde einen 25 Seiten pro Sekunde Drucker hat statt eines Bildschirms. Ich werd mich mal durch deine Links arbeiten.

@jus: Auch die Vampyre-Bibliothek werd ich mir mal anschaun. Die Sache, das ich dem Kunden schlecht sagen kann sieht in etwa so aus:

Nichtinformatiker haben ja selten wirklich ein Verständnis dafür, was so alles im Hintergrund abläuft. Sprich sein Photohop kann das richtig, die Windowsanzeige kann das richtig und was erschwerend hinzukommt: das Konkurenzprodukt kann das richtig!
Nun handelt es sich bei dem Konkurenzprodukt leider um den Markführer in dem Bereich, der auch den Standard definiert. Das macht also einen denkbar schlechten Eindruck, wenn wir da auf einmal ankommen und sagen: "Tut uns leid, aber die Methode, die ihr bisher verwendet habt und die beim eigentlichen Marktführer läuft, ist an sich ungeeignet. Ändert die mal."

Ich persönlich finds unsinnig auf biegen und brechen einen für Drucker optimierten Farbbaum zur reinen Darstellung über Monitor zu verwenden. Aber man steckt ja nicht in den Köpfen der Leute. Da wird sich vielleicht jemand gedacht haben "Je mehr Farb/Bit-Tiefe umso besser!".
  Mit Zitat antworten Zitat
S.Langhammer

Registriert seit: 28. Mai 2013
23 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: CMYK jpgs in RGB umwandeln

  Alt 9. Okt 2013, 13:53
SO!
Ich hab in einem Testprojekt ein Bisschen rumgebastelt und danke leute es hat geholfen!
Mediums Lösung klang zu schön um wahr zu sein, wars in dem Fall leider auch. p.s. Keine ahnung was Google bei mir macht aber selbst wenn ich den Link klick kommt dein Ergebnis da nicht an erster Stelle.

Die Vampyre Bibliothek hats letztenendes gerissen! Jetzt muss ich das ganz enur noch halbwegs intelligentin unser Tool einbauen.

Danke an alle nochmal!
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#7

AW: CMYK jpgs in RGB umwandeln

  Alt 9. Okt 2013, 14:11
Dann personalisiert Google doch mehr als ich es ihnen bislang vorwerfen wollte . Aber die Vampyre Lib kommt dann wohl auch auf meinen "mal dringend begucken"-Zettel. Wenn die schon deratige Randerscheinungen mit abdeckt, liegt die Vermutung nahe, dass die echt umfassend einsetzbar ist. Danke auch von mir für den Tipp!
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
S.Langhammer

Registriert seit: 28. Mai 2013
23 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: CMYK jpgs in RGB umwandeln

  Alt 10. Okt 2013, 13:13
Die Sache ist halt die, das der gute Blutsauger noch ein WIP ist. Wer bereit ist, da ein wenig Zeit und Energie hineinzustecken kann die Entwicklung sicher noch mit vorantreiben. Der gute Herr Mauder arbeitet alleine an dem Projekt und freut sich bestimmt über ein Bisschen Unterstützung.

p.S.
Die Umwandlung von CMYK zu RGB mit Vampyre hatte bei meinen Testdateien keinen wahrnehmbaren Qualitätsverlust verursacht.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz